일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Mining
- ios
- viewcontroller
- dsYM
- Crash
- PBFT
- Blockchain
- ethereum
- 백준
- 분산원장
- 블록체인
- 비트코인
- POS
- Algorithm
- reentrancy
- 알고리즘
- DPOS
- 이더리움
- Xcode
- 프로그래머스
- External Call
- 블록체인 기술
- 재진입공격
- DEFI
- Report
- .dsym
- 암호화폐
- solidity
- pow
- view 이동
Archives
- Today
- Total
개발하기좋은날
ViewController 제거, rootView 지정 하는법 본문
반응형
ViewConroller 를 제거하는건 쉽다
self.dismiss(animated: false, completion: nil)
ViewController에서는 view는 스택으로 쌓이게된다 그리고 여러 view 중 rootView 가 존재한다
rootView는 제거가 되지않는 뷰로 이걸 이용해서 몇가지 응용이 가능하다
일단 처음 어플리케이션을 시작을 하게되면 시작되는 ViewController 가 rootViewController 된다
(예를들어 스토리 보드에서 "->" 표시를 가지고있으면 rootView가 될수있다)
1. rootView 를 다른 ViewController로 지정하기
2. rootView를 뺴고 다른 ViewController 제거하기
- rootView를 지정하는법은 두가지가 있다
// 첫번째는 sceneDelegate, Appdelegate에서 접근 하는 방법
UIApplication.shared.windows.first?.rootViewController = self
// 두번쨰는 view에서 접근 하는 방법
self.view.window?.rootViewController = self
- 첫번쨰
싱글턴으로 인스턴스화된 UIApplication 으로 접근하는 방법인데 주의할게 있다
- 앱 최초 실행시 생성되는 window가 유일한 것은 아니라서 앱 실행중에 다른 종류의 window들이 생성될수도있음 예를 들면 UITextEffectsWindow와 UIRemoteKeyboardWindow 등이 있음
- UIApplication.shared를 사용하여 접근한다면 다른 window에 접근하지 않도록 조심 해야한다
- 두번째
view에서 접근하는 방법인데 이게 nil 일수도있으니 확인하고 사용 하자
viewdidAppear 이후 객체를 얻어올수있으니 참고하자
- rootView를 뺴고 모든 뷰를 제거해보자 (rootViewController기준 rootView를 제외한 모든 뷰들이 사라진다)
self.view.window?.rootViewController?.dismiss(animated: false, completion: nil) // 루트뷰를 제외한 모든뷰 제거
** 추가로 이전 뷰를 가지고 오는 방법은 다음과 같다 as 이후는 타입캐스팅이니 본인의 viewcontroller에 맞게끔 수정 하면 된다
** 이전 view를 가지고오면 간단하게 데이터 전송이라던가 핸들링을 할수있으니 알아두면 쓸모가있다
guard let pvc = self.presentingViewController as? CustomTabarController else {
return
}
반응형
'iOS > Development' 카테고리의 다른 글
Xcode Crash Report 파일 복호화 방법 (0) | 2021.02.02 |
---|---|
ViewController 사이 데이터 이동및 6가지 방법 (0) | 2021.01.22 |
iOS - SubView 제거 하는방법 (0) | 2021.01.19 |
NSUserDefaults 사용하여 내부 DB에 간단하게 저장 (0) | 2021.01.19 |
Alert, Action Sheet 간단 정리 (0) | 2021.01.19 |
Comments