inflearn logo
강의

Course

Instructor

Yagom's iOS Programming

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

437

PKH

5 asked

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

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

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

todo앱 swift UserNotification ios window

Answer 1

0

yagom

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

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

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

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

[iOS] AppDelegate와 SceneDelegate

0

PKH

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

0

PKH

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

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

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

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

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

감사합니다.

0

yagom

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

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

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

고맙습니다.

강좌소개의 overview

0

370

1

configure 메소드의 DispatchQueue.main

0

342

1

prepareForReuse 사용 방법

0

620

1

화면이 야곰님처럼 로드되지 않아 질문드립니다.

0

375

2

버튼 이미지 크기가 조절이 안 되는데 어떤 부분을 조정해야 할까요?

0

2178

1

코드블록 10-3-5 에러

1

207

0

info에서 자동완성이 나오지 않는데 따로 설정을 해주어야 하는 부분인가요?

0

264

1

star buton

0

362

1

Singleton 관련 질문.

0

251

1

로컬 유저 노티피케이션에서 반복 주기 설정 방법 문의 드립니다.

0

532

0

Todo 앱에서 로컬 노티피케이션 해제 시 질문 드립니다.

0

352

1

ios13이 생기고 변경점 관련

0

204

1

8번 프로젝트

0

189

1

todo 앱에서 파일 저장 기능에 대한 질문입니다.

0

270

1

9번 프로젝트 질문

1

278

2

9번 프로젝트 자료 질문

0

260

1

8번 프로젝트 > 도전과제 2번 질문

0

214

2

Todo 앱에서 일정 추가가 바로 반영되지 않습니다.

1

435

6

Todo 앱에서 DateFormatter 사용 관련 질문 드립니다.

0

289

1

5번 프로젝트 - 나머지 화면 구성하기

1

192

1

웹브라우저 - 코드로 기능 구현하기

1

569

3

어시스던트에 매뉴얼이 없습니다.

0

254

1

제공된 코드블럭 파일

0

250

2

5번째 프로젝트 질문입니다

0

131

0