티스토리 뷰
[Swift] UITabBar -> UINavigationController -> ViewController의 PresentingViewController 찾기!!
DeveloperFury 2020. 3. 11. 21:07안녕하세요!
Fury입니다 :)
바로 본론으로 갈게요! ㅎㅎ
먼저,
A ViewController -> B ViewController로 present를 했다고 가정할게요.
B ViewController에서 작업을 수행하고
dismiss를 합니다.
그리고 나를 띄운 A ViewController에서
무언가 처리를 해주어야 할 때!!!!!
방법은 여러가지가 있겠죠?
Delegate를 쓴다거나
NotificationCenter를 통해 Observing을 한다던가
나를 띄운 VC인 PresentingViewController를 찾는다던가!!
이 글에서는
PresentingViewController를 찾아서 작업을 하는 것을 설명드리려고요.
특히!!
그 PresentingViewController가 단순한 ViewController가 아니라면??
한 번 알아보죠
UITabBar -> UINavigationController -> ViewController의 PresentingViewController
만약 보통의 presentingViewController 찾는 코드라면
if let pvc = presentingViewController as? ViewController {
pvc.alertNotice()
}
이런 식으로 코드를 작성하겠죠.
하지만, presentingVC가
UITabBarController안에 UINavigationController안에 속해있는 ViewController라면??
presentingViewController를 출력해보면
UITabBarController가 나오는 것을 확인할 수 있을 거예요.
그래서 결론을 내자면
아래와 같이
찾으시면 됩니다!!
if let tvc = self.presentingViewController as? UITabBarController {
if let nvc = tvc.selectedViewController as? UINavigationController {
if let pvc = nvc.topViewController as? ViewController {
let chatRoomVC = ChatRoomViewController()
chatRoomVC.observerCount = -1
chatRoomVC.modalPresentationStyle = .fullScreen
self.dismiss(animated: false) {
pvc.goToChatRoom(groupDB)
}
}
}
}
UITabBarController -> UINavigationController -> ViewController 순으로 찾으시면 됩니다!
그냥 삽질하다가 정리 한 번 해봤습니다ㅋㅋㅋ
감사합니당 :)
'개발 > iOS' 카테고리의 다른 글
[Swift] 배열을 그룹화 하는 방법 - Dictionary(grouping: , by: ) (2) | 2022.08.25 |
---|---|
[Swift] 카카오 로그인 v2 사용하기! (3) | 2020.08.19 |
[Swift] 스위프트 GCD 기초 정리(1) - Serial Queue, Concurrent Queue (0) | 2020.02.28 |
[iOS/출시/업데이트] 앱스토어 커넥트 버전 및 플랫폼 버전 잘못 입력했을 때! (5) | 2020.02.22 |
[Swift] 공유하기 내용 한국어로 나오게 하기 !! (ActivityViewController localization) (433) | 2020.02.16 |
- Total
- Today
- Yesterday
- UITextField 멀티라인
- TableView
- 애플로그인
- xcode11
- 카카오 로그인
- Kakao
- 안드로이드
- 문자열나누기
- swift fcm
- TextField Padding
- Sign in with Apple
- Android
- 앱스토어 커넥트
- presentingViewController
- ActivityViewController
- swift 문자열
- 공유하기 한국어
- ios
- Swift Target Version
- GIF
- signinwithapple
- error
- firebase
- 키크론K2
- Xcode
- 앱커넥트
- SWIFT
- iOS13
- ModalPresentaionStyle
- Swift GoogleMap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |