인프런 커뮤니티 질문&답변

PKH님의 프로필 이미지
PKH

작성한 질문수

야곰의 iOS 프로그래밍

todo앱 User Notification에서 질문이 있습니다

작성

·

366

0

안녕하세요? 

todo앱을 new project를 열어서 강의를 따라하다 보니 AppDelegate에서 막혔습니다. 

 

if let navigationController: UINavigationController = self.window?.rootViewController as? UINavigationController, 

구문에서 Type of expression is ambiguous without more context라는 에러가 떠서 

이런저런 검색을 해보니 

iOS 13부터인가 window에 대한 선언이 SceneDelegate.swift에 있다고 

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {} 

에서 window를 통해 rootViewController를 지정할 수 있다고 알게 되었습니다.

그런데 또 어떤 글은 앱이 완전히 구동하기 전에 User Notification Delegate 설정을 해줘야 한다고 AppDelegate.swift의 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {}

에서 delegate 설정을 완료해야 한다고 되어 있어서요.

[질문 1]

UNUserNotificationCenter.current().delegate = todosTableViewController

구문을 어디에 작성해야 되는지 궁금합니다.

SceneDelegate에 있는 var window: UIWindow?를 AppDelegate에 선언을 해서 해결해도 될까요?

[질문 2]

또한 UNUserNotification의 delegate는 앱에서 하나만 존재해야 하고 존재할 수 밖에 없는지요?

todo앱에서 배운대로 조금씩 변경해 보고 있는데요.

todosViewController에서와는 다른 유저 알림을 추가로 구현하고 싶다면 

UNUserNotificationCenter.current().delegate = myViewController

이런 식으로 delegate를 해야 할 거 같은데 

설정해야 위치가 AppDelegate 또는 SceneDelegate에서 설정해야 한다고 하니

UNUserNotificationCenter.current().delegate는 객체가 아니라 타입 프로퍼티(표현이 맞는 건지 모르겠네요)라서 앱별로 하나만 구현할 수 밖에 없는 건지도 궁금합니다.

강사님 강의 듣고 궁금한 것은 알려주신대로 도큐먼트랑 인터넷 검색해서 찾아보고 있는데 

위에서 질문드린 부분들은 잘 못 찾겠어서 질문 드립니다.

답변 1

0

yagom님의 프로필 이미지
yagom
지식공유자

delegate는 한 객체만 지정할 수 있습니다.

굳이 멀티 윈도를 사용할 것이 아니면 Scene Delegate를 사용하지 않아도 됩니다.

App Delegate와 Scene Delegate에 대한 내용 및 Scene Delegate를 사용하지 않도록 설정하는 방법은 아래 링크를 참고해보시면 될 것 같습니다.

Scene Delegate를 없애면 예전의 코드와 동일하게 작성할 수 있습니다 :)

[iOS] AppDelegate와 SceneDelegate

PKH님의 프로필 이미지
PKH
질문자

빠르고 자세한 답변 감사 드립니다!!

PKH님의 프로필 이미지
PKH
질문자

다른 분이 올리셨던 질문(새 버전의 iOS에서 기본 모달 스타일이 변경된 건)도 그렇고 iOS 버전별로 변경되는 내용들이 많아 이쪽 분야 개발은 참 힘든 것 같네요... ㅠㅠ 

저번에도 한번 질문 드렸었는데 야곰 강사님의 이런 빠른 답변들 참 감사합니다!

유투브나 구글 검색으로 모르는 내용 찾아보고 있으나

야곰 강사님의 정통파 강의, 특히 돌아보기 시간에 알려주시는 내용/팁들이 공부 방향에 정말 도움이 많이 됩니다.

또 막히는 부분 있으면 질문 드리겠습니다.

감사합니다.

yagom님의 프로필 이미지
yagom
지식공유자

요즘은 다들 너무 빨리 바껴서 iOS 뿐만 아니라 참 쉽지 않죠 ^^;

그렇게 바뀌는 것을 매번 따라가는 것이 프로그래머의 숙명이기도 합니다 ㅎㅎ

더 빨리 답변드리지 못해 죄송해요. 언제든 질문주시면 최대한 빠르게 응대하겠습니다.

고맙습니다.

PKH님의 프로필 이미지
PKH

작성한 질문수

질문하기