티스토리 뷰
728x90
하나의 뷰 컨트롤러에서 다른 뷰컨트롤러를 modal로 띄웠을때 sheet로 띄우는 설정이었다면
그 전 뷰 컨트롤러가 presentingViewController가 되는데
tab bar controller를 이용하게 되면 presentingViewController가 UITabBarController가 된다.
그래서 현재 뷰를 dismiss할때 ViewController의 viewDidLoad를 해야하는데 못하는 상황 발생..
해결 방법은
TabBarController의 children을 사용하면 된다..!!
스택오버플로우 찾아보면서 똑같은 질문이 있어서 답변을 봤는데 거기엔
definesPresentationContext를 true로 하고 modalPresentationStyle를 current context로 바꾸라는데
모두 시도해봤지만 안됐다
그래서 진짜 막연한 상상으로..tab bar controller에 속한 아이템(뷰컨트롤러)들이 있으니까 어쩌면
접근할 수 있을지도 몰라..하고 .을 눌러봤는데 children이 있었다..형식이 뷰 컨트롤러의 리스트길래
메인 뷰는 첫번째 뷰일테니까..presentingViewController?.children[0].viewDidLoad()하니까 된다..
children찍어보니 이렇게 나온다. 현재 탭바에 연결돼있는 두개의 뷰..
그렇게 해결-
사실 full screen 사용하면 보다 간단한 문제일텐데 지금 UI엔 이게 적절했다.
무튼 해결!
728x90
'iOS' 카테고리의 다른 글
[iOS] UICollectionViewDelegateFlowLayout 적용 (0) | 2021.03.13 |
---|---|
[iOS] swift tab bar 와 tool bar (0) | 2021.03.08 |
[iOS] 아이패드에서 UIAlertController actionSheet사용시 오류 (0) | 2021.03.04 |
[iOS] Core Data (0) | 2021.02.13 |
[iOS] CollectionView (0) | 2021.02.12 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 정렬
- 트리
- 최대힙
- 백트래킹
- 프로그래머스
- 이분탐색
- 동적계획법
- Swift
- 다이나믹프로그래밍
- BFS
- c++
- 백준
- 최단경로
- 수학
- 게임이론
- 스택
- dfs
- 자바
- 가장 큰 수 프로그래머스
- 투포인터
- 브루트포스
- 우선순위큐
- 최소힙
- dp
- 가장 큰 수 Swift
- 파이썬
- 토마토
- 알고리즘
- 웹크롤링
- 그리디알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함