[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..
[Dev, iOS] Storyboard를 활용한 화면 전환 4가지 방법
·
Dev/iOS
* push는 navigation controller가 연결된 상태에서만 작동 * 1. segue로 push 전환 : 원래 화면에 있는 Button을 끌어다가 이동할 VC에 'Show'로 연결 뒤로가기 : 이동한 화면 속 Button에 해당 코드 작성 self.navigationController?.popViewController(animated: true) // 평상시 self.navigationController?.popToRootViewController(animated: true) // Tip: 네비게이션 컨트롤러로 연결된 화면에서 맨 첫번째 화면으로 뒤돌아가고 싶을 때 2. code로 push 전환 : 이동할 VC의 속성 인스펙터로 가서 storyboard ID 설정 (ex. secondVC),..
[Dev, iOS] Swift Package Manager 사용하기 (Xcode 13)
·
Dev/iOS
외부 라이브러리를 사용하는 방법에는 대표적으로 CocoaPod을 활용하여 설치를 합니다.하지만 Xcode에서는 Swift Package Manager을 활용하는 방법이 있는데, 이전 버전의 Xcode에서 사용하는 방법과 달라졌습니다. 이전 버전에서는 File > Packages > Add Package Dependency 경로로 들어갔지만, Xcode 13버전부터는 이곳에서 라이브러리를 추가할 수 있습니다.
[Dev, iOS] Storyboard 없이 첫 화면을 구성하는 법
·
Dev/iOS
storyboard로 개발을 하는게 더 편리하고  쉽지만, 가끔은 SnapKit 라이브러리를 활용하여 코드로 화면을 짤 수도 있습니다. Project를 생성하고, 기본으로 포함되어있는데 ViewController에 바로 개발을 할 수는 있지만, 굳이 필요 없는 무거운 파일들을 앱에 포함시킬 필요는 없어요. 1. ViewController 삭제 2. Info.plist > Information Property List > Application Scene Manifest > Scene Configuration > Application Session Role > Item 0 > Storyboard Name 삭제 3. Ctrl + N -> 새로운 VC 생성 4. SceneDelegate에 해당 코드 작성func..
[Dev, iOS] 백그라운드 진입 시 민감한 정보 가리기
·
Dev/iOS
금융 등 개인 정보를 담는 앱들은 백그라운드에서 앱 화면을 가리는 기능을 사용한다.iOS 13 미만을 지원하는 앱에서는 appDelegate에서,이상의 버전을 지원하는 앱에서는 sceneDelegate에서 해당 메소드들을 구현해주자. // 액티브 상태가 되었을 경우(다시 앱으로 돌아왔을 때) func sceneDidBecomeActive(_ scene: UIScene) { callBgImage(false) } // 홈 바를 쓸어 올리거나 홈버튼을 두번 눌렀을 경우 func sceneWillResignActive(_ scene: UIScene) { } // 백그라운드 상태였다가 돌아왔을 때 func sceneWillEnterForeground(_ scene: UIScene) { ..
[Dev, iOS] 배경을 Gradient로 색칠하기
·
Dev/iOS
let gradientView = CAGradientLayer()gradientView.frame = bgView.bounds // bgView는 그라데이션을 덮을 superView에 해당let colors: [CGColor] = [ // 해당 부분에 그라데이션을 넣을 색상을 입력 (오름차순으로 표현됌)]gradientView.colors = colors// 그라데이션의 시작점과 끝점을 좌표로 표현, 0은 0을, 1은 maximum X/Y point를 의미gradientView.startPoint = CGPoint(x: 0.5, y: 0.0)gradientView.endPoint = CGPoint(x: 0.5, y: 1.0)// 할당하면 끝bgView.layer.addSublayer(gradientView)
코스트잇 앱 개인정보 처리방침
·
Dev/etc
('https://dusanbaek.tistory.com'이하 'Dusan Baek's Blog')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2021년 9월 10부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://dusanbaek.tistory.com'이하 'Dusan Baek's Blog')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 ..
[Dev, iOS] 디테일한 다크모드 적용하기
·
Dev/iOS
다크모드를 이용하는 방법은 여러가지가 있지만, 본인의 app target이 13.0 이상을 지원하고 있다면 Asset에서 image set을 다크, 라이트 모드에 따라 지원해주면 쉽게 해결 가능합니다.필자의 경우도 13.0 이상의 앱을 개발중이기에 위와 같은 방법으로 상당 부분 해결하였지만, 문제는 해당 문제를 코드로 구현한 부분에서는 시스템 자체 모드 변경에 맞게 다크 모드로 바로 변경이 되지 않더군요.해당 문제는override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {        super.traitCollectionDidChange(previousTraitCollection)              ..
100두산
정상에서 보자 ✈️