[Dev, iOS] AlertViewController에서 UITextField와 UIDatePicker 사용하기
·
Dev/iOS
UIAlertController를 활용하면 단순히 확인, 설정, 취소만 할 수 있는 게 아니라 UIPickerView나 UIDatePicker 등을 활용하여 좀 더 풍부한 알림창을 띄울 수 있습니다.  1. xcode 파일을 생성하고 UILabel, UIButton를 추가, 해당 ViewController에 연결해줍니다. class ViewController: UIViewController { // 화면에 띄울 라벨 의미 @IBOutlet weak var label: UILabel! override func viewDidLoad() { super.viewDidLoad() } // Alert을 띄워줄 버튼 의미 @IBAction func button(..
[Dev, iOS] 앨범, 카메라 이미지 불러오기 & 저장하기
·
Dev/iOS
프로필 사진 등록, 편집 등 앱 내에서 해당 기능들이 수반되려면 앨범이나 카메라를 통해 이미지를 받아 화면에 띄우고, 편집을 할 수 있어야 하며 작업이 다 끝난 후에는 다시 앨범으로 저장까지 하는 과정이 필요합니다. 해당 작업을 하기 위한 기본적인 코드를 알아보겠습니다.1. 앨범, 카메라 사용 권한 등록먼저 애플의 까다로운 사생활 보호 정책으로 인해 해당 기능의 필요한 시점과 위치에서 사용 권한을 물어보는 팝업을 띄워줘야 합니다.String값으로는 해당 팝업을 띄워줬을 때 클라이언트에게 보여줄 설명을 작성해주면 됩니다.override func viewDidLoad() { super.viewDidLoad() PHPhotoLibrary.requestAuthorization( { status in ..
[Dev, iOS] Modal로 띄운 ViewController에서 Navigation으로 Push하기
·
Dev/iOS
VC1 →(modal)→ VC2 →(navigation)→ VC3 Navigation Controller로 연결된 여러 뷰에서 또 다른 뷰를 Modal 방식으로 띄우는 건 비교적 쉽지만, Modal로 띄운 뷰에서 Navigation 형태로 Push하는 건 약간의 수고를 요한다. 단순히 Modal 하나만을 띄울 땐 StoryBoard 상에서 Segue를 끌어와 identifier와 prepare 메서드를 이용하여 Modal Presentation을 구현했다면, 이번에는 VC1 속 버튼 자체에서 코드 작업이 필요하다. Navigation 형식의 Push를 원한다면 해당 뷰 컨트롤러(VC2)가 Navigation Controller에 Embed in 되어있어야 한다. 따라서 Modal 형태로 VC2를 품고 있..
[Dev, iOS] 프로퍼티(변수) 값 변경마다 특정 메서드를 실행해야 할 때
·
Dev/iOS
앱에서 어떤 동작을 마치고 프로퍼티(변수) 값이 변경되고 변경 될 때마다 특정 메서드를 실행하거나, 값을 저장하거나 혹은 UI를 업데이트해야 하는 경우가 있습니다. 이럴 땐 변수 선언을 할 때 didSet 프로퍼티 옵저버를 활용하면 됩니다.var list: [String] = [] { didSet { // 감지될 때마다 실행하고 싶은 코드 작성 }}
[Dev, iOS] 같은 함수를 여러 프로퍼티에 적용하고 싶을 때 + 버튼에 그림자 만들기
·
Dev/iOS
여러 UILabel에 같은 alpha 값을 적용한다는 등, 종류가 같은 프로퍼티에 같은 함수나 클로저를 실행시킬 땐 forEach 구문을 활용하면 된다. [refUI, backUI, zzan, resetUI, changeUI, instaUI].forEach { $0?.makeShadow() // 각 UIButton에 makeShadow() 함수 적용} extension UIButton { // UIButton 클래스를 확장하여 함수 생성 func makeShadow() { self.layer.shadowColor = UIColor.white.cgColor self.layer.shadowOpacity = 1.0 self.lay..
[Dev, iOS] StoryBoard 없이 시작하기 (Xcode 13)
·
Dev/iOS
SnapKit을 활용하여 코드로 앱을 구성할 때 초기 설정을 해주어야 한다. 1. StoryBoard를 체크하여 파일 생성 2. Main (Main.StoryBoard) -> Move to Trash 3. Info (Info.plist)에서 Information Property List > Application Scene Manifest > Scene Configuration > Application Session Role > Item 0 > Storyboard Name 삭제 4. SceneDelegate에 해당 코드 작성class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scen..
[Dev, iOS] Push Notification (알림 메시지) 클릭 시 특정 뷰 오픈하기
·
Dev/iOS
이번 시간에는 Push 알림 메시지가 도착했을 때, 앱의 여러 뷰 중 특정 뷰를 오픈하는 법에 대해 작성해봅니다. 해당 예제는 5개의 탭으로 구성되어 있는 StoryBoard에서 네번째 탭을 열고, 네번째 탭에서 secondVC를 modal이 아닌 Push 형식으로 전환하는 방법을 담고 있습니다. 따라서 네번째 탭을 먼저 navigationController를 연결, navigationController의 rootView로 secondVC를 연결하는 선행 과정이 필요합니다. // 1. AppDelegate 속에 didReceive 메서드 구현 func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNoti..
[Dev, iOS] Storyboard, Protocol 및 Delegate를 활용한 화면 간 데이터 전달
·
Dev/iOS
Dev : Storyboard를 활용한 화면 전환 4가지 방법* push는 navigation controller가 연결된 상태에서만 작동 * 1. segue로 push 전환 : 원래 화면에 있는 Button을 끌어다가 이동할 VC에 'Show'로 연결 뒤로가기 : 이동한 화면 속 Button에 해당 코드 작성 self.n..dusanbaek.tistory.com화면 전환을 하는 이유는 아무래도 화면 간에 데이터를 전달하기 위함이니까 이번에는 데이터를 전달하는 방법에 대해 작성해봅니다. 1. code로 전환할 때 원래 화면 -> 다음 화면으로 데이터 전달 : 전달할 VC로 다운 캐스팅을 해준 후, 해당 VC의 프로퍼티에 값을 직접 전달guard let secondVC = self.storyboard?.i..
100두산
'Dev/iOS' 카테고리의 글 목록