swift viewDidLoad시에 화면 천이하고 싶다.

1978 단어 Swift4
viewDidLoad시에 화면 천이하려고 10분 정도 곤란하고 있었으므로 똑같이 곤란하고 있는 분을 위한 기록입니다.

viewDidLoad에 원래 화면 천이는 할 수 없다.



viewDidLoad로 화면 전이할 수 없는 이유는 「viewDidLoad와는 아직 view를 읽는 처리」이기 때문에.
결론으로서는 viewDidAppear를 사용하는 것으로 화면 표시시의 화면 천이를 실시할 수 있다.

자주(잘) 여러가지 기사로 이하와 같은 라이프 사이클을 본 적이 있다고 생각합니다.

흠흠, 과연. 그래서 왜 화면 전환이 불가능한가?
iOS 개발의 UIViewController 수명주기 이벤트 요약
매우 힘들게 떨어졌기 때문에 정리하면, view 라이프 사이클은,
①loadView
②viewDidLoad
③viewWillAppear
④viewWillLayoutSubviews
⑤viewDidLayoutSubviews
⑥viewDidAppear

⑦viewWillDisappear
⑧viewDidDisappear

대략적으로는 다음과 같은 의미가 되므로,
①Viewを読み込むよ
②Viewを読み込んだよ
③Viewを表示するよ
④View(SubViews)をうまい事配置するよ
⑤View(SubViews)をうまい事配置したよ
⑥Viewを表示したよ

⑦View消すよ
⑧View消したよ

⑥의 viewDidAppear로 처음으로 화면 천이 등의 처리를 실시하는 것이 가능하게 된다.
코드로 하면 다음과 같이 됩니다.

viewDidLoad 내에 화면 전환을 쓴 경우
 override func viewDidLoad() {
        super.viewDidLoad()
        //ここに画面遷移処理を記述しても走らない。
    }

override func viewDidAppear(_ animated: Bool) {
         //ここに画面遷移処理を記述するときちんと走る。    
        }



나름대로 깨끗이했습니다. viewDidLoad시에도 화면 전환 방법을 아시는 분이 있으면 코멘트를주세요.

좋은 웹페이지 즐겨찾기