모바일앱/iOS91 로그아웃구현 - push와 present 그리고 NotificationCenter, View의 생명주기 지난 두 글에서 비슷하지만 다른 두가지의 뷰를 전환하는 방식을 다루었다. View와 View를 연결하는 방식 https://h1guitar.tistory.com/164 push와 present 안녕하세요 오늘은 앱을 개발하는 과정에서 기본적으로 요구하는 화면전환에 대해서 알아보겠습니다. 기본적으로 화면을 전환하는 방식은 Navigation을 이용해서 Stack처럼 쌓아가는 방식과 그냥 h1guitar.tistory.com present 세로 방향으로 전개되는 View UIViewController의 메소드 실행시키면 기존의 UIViewController 위에 새로운 뷰를 띄운다. 이전 뷰로 돌아가기 위해서는 dismiss push 가로 방향으로 전개되는 View UINavigationController의.. 2022. 1. 12. autologin btn_box.setBackgroundImage(UIImage(named: "box"), for: .normal) btn_box.setBackgroundImage(UIImage(named: "checkBox"), for: .selected) 1. Button으로 체크박스 흉내내기 안드로이드에서는 따로 CheckBox라는 widget이 제공되어 편리했는데 xcode에서는 checkbox는 없고 button밖에 안보인다.. 찾아보니 button을 커스텀하여 만들어야하는데 stackoverflow에서 조금 간단히 체크박스같은 버튼을 만들 수 있는 방법을 제시했다 (https://stackoverflow.com/questions/41344895/the-best-way-to-use-checkbox-ios-swif.. 2022. 1. 10. 강제업데이트의 로직 강제업데이트와 선택업데이트는 앱이 시작될때 app delegate에서 앱의 API통신으로 버전체크를 하면서 결정된다 API에 담기는 앱의 버전에 대한 정보는 2가지가 담겨있다. 바로 이 앱의 최소 버전과 최신 버전 에 대한 정보다 currentVersion : 현재 기기의 버전 minVersion : 이 앱이 지원하는 최소버전 latestVersion : 이 앱의 최신버전 변수값이 위와 같을 때, 업데이트에는 3가지 루트가 있다 1. 강제업데이트 2. 선택업데이트 3. none 강제업데이트 : 이 기기버전이 지원하는 최소버전보다 낮을 경우 선택업데이트 : 이 기기의 버전이 최소버전이상이고 최신버전보다는 낮을 때, 업데이트 혹은 나중에 업데이트할수있도록 선택하는 경우 none : 아무것도 안하는 경우 코드.. 2022. 1. 8. Notification Center Notification Center 1. 이 액션이 진행되었으니 담당자들은 처리바람. 2. 담당자 수신 완료, 처리하겠음 1. Post -> 이 액션이 진행되었으니 담당자들은 처리바람 NotificationCenter.default.post(name: .doItSomeThing, object: nil) 포스트 -> name에 해당하는 자들에게 각자 일을 수행하라고 시키는 것 doItSomeThing은 name에 해당(동작하라는 게 아님) name: 일처리하는 스텝의 이름 스탭마다 일거리는 다르다. - 일거리와 이름 세팅하기 @objc func printSomeThing(_ notification: Notification){ print(“do it something”) } 하는 일은 프린트 해주는 것뿐이고.. 2022. 1. 8. (뷰의 이동) push와 present 안녕하세요 오늘은 앱을 개발하는 과정에서 기본적으로 요구하는 화면전환에 대해서 알아보겠습니다. 기본적으로 화면을 전환하는 방식은 Navigation을 이용해서 Stack처럼 쌓아가는 방식과 그냥 위에 띄우는 Present방식 이렇게 2가지가 있어요 Navigation은 push 으로 화면을 띄우고 Pop으로 제거한다. Present는 Present로 화면을 띄우고 Dismiss로 제거한다. !! Present방식은 뒤로가기가 따로 생기지 않기때문에 개발하면서 직접 만들어줘야한다. https://0urtrees.tistory.com/43 iOS 네비게이션컨트롤러 화면전환 기능 코드구현하기 안녕하세요 민군입니다! ^-^ 저는 최근 부스트코스 에이스 과정에 참여하게 되었는데요. 오늘은 부스트코스 에이스 학습내.. 2022. 1. 6. (뷰의 이동) Segue를 연결하는 3가지 방법 segue 세그웨이를 연결하는 방법은 3가지가 있다. 1. 스토리보드에서 UIbutton을 배치하고 ctrl 키를 누르고 목적지가 될 뷰컨트롤러에 드래그를 하면 액션 세그창이 생성됨. 원하는 방식을 선택하면된다. 2. performSegue 메소드를 이용하여 연결하기 (storyboard + code) 스토리보드에서 출발하는 viewController에서 도착하는 viewController를 연결한뒤 생기는 연결 선(세그웨이)를 클릭하면 identifier를 설정해주고 코드상에서 연결하는 방법 코드상에서는 prepare와 Perform Segue 메소드를 이용해 행동을 정의할 수 있다. prepare override func prepare(for segue: UIStoryboardSegue, sender.. 2022. 1. 5. 접근제한자 private fileprivate internal public open 접근 제한자 헝용 범위 private : 같은 클래스 fileprivate : 같은 소스 파일(.swift) internal : 같은 모듈(framework) or 같은 프로젝트 public : 모듈 외부까지 가능 open : 모듈 외부, 상속 및 override가능(확장 가능) 선언하지 않을시 디폴트는 internal 접근 제한자 일반적으로 단일 대상으로 특정 앱을 만드는데, 이 앱의 접근은 앱의 모듈 외부에서 사용하게 만들 필요가 없다. 그렇기 때문에 기본값은 internal이다. 하지만, 외부에서 해당 모듈의 코드를 비공개 하고 싶은 경우 fileprivate이나 private 둘 중 하나로 설정해야한다. 클래스에 붙이는 접근 제한자의 의미는 살짝 다르다. open class -> 다른 모듈에서 해.. 2022. 1. 5. 싱글턴 프로그래밍 디자인 패턴 Singleton App전역에서 접근 가능한 인스턴스 XXXManager, shared 라는 이름을 달고 있는 경우가 많음 다른 디자인패턴과 마찬가지로 잘 쓰면 약이되지만 잘못쓰면 안 좋을 수 있음 class UserInfo { static let shared: UserInfo = UserInfo() UserInfo.shared.name = self.nameField.text self.nameLabel.text = UdserInfo.shared.name self.percentageLabel.text = UserInfo.shared.scorePercentageText 인스턴스를 생성시, 같은 메모리의 위치를 확인 할 수 있다. 2021. 12. 24. SceneDelegate를 사용하지 않을 때의 세팅 Xcode13부터 AppDelegate의 기능이 AppDelegate와 SceneDelegate로 나뉘었습니다. SceneDelegate는 간단히 말해서 스플릿뷰를 지원하는 것에 대한 기능이라고 생각할 수 있습니다. 하지만 SceneDelegate를 사용하지 않는 세팅이 필요한 경우도 있습니다 세팅: 1. Info에서 Scene관련 내용 지우기 2. SceneDelegate 파일 지우기 3. AppDelegate안에 클래스 내부에 window 선언하기 var window: UIWindow? 4. AppDelegate에서 SceneDelegate 관련 코드 지우기 func application(_ application: UIApplication, configurationForConnecting connec.. 2021. 12. 15. iOS에서 HTTP 접근 허용하기 Xcode는 iOS 9부터 HTTP 접근을 허용하지 않습니다. 따라서 리소스가 https 가 아니라면 불러오지 못합니다 Info에서 key 를 추가해줍니다. App Transport Security Settings - Allow Arbitrary Load Yes로 변환 이미지를 불러오는 스킴주소 등에서 문제가 될 수 있습니다. 2021. 12. 15. 이전 1 ··· 4 5 6 7 8 9 10 다음