화면전환시 필요한 뷰컨트롤러 생성 메서드 instantiateViewController
instantiateViewController
뷰컨트롤러 인스턴스를 그냥 불러오면 뷰컨트롤러 안에는 UI요소들이 없기때문에 껍데기만 불러와진다.
따라서 storyboard ID와 storyboard name 을 이용해서 storyboard 객체를 통해 instantiateViewController를 사용하여 UI요소까지 불러와야한다.
storyboard ID == identifier 이다.
func presentStockModifyView() {
let stockModifyNavController = StockModifyNavController()
let storyboard = UIStoryboard(name: stockModifyNavController.storyboardName, bundle: nil)
let stockModifyNC = storyboard.instantiateViewController(identifier: stockModifyNavController.storyboardID)
//네비게이션 컨트롤러를 띄우는 방식 두가지
//1. 모달로 띄우기
present(stockModifyNC, animated: true, completion: nil)
//2. 네비게이션으로 띄우기
navigationController?.show(stockModifyNC, sender: nil) //새로운 방식
navigationController?.pushViewController(stockModifyNC, animated: true) //deprecated 방식 - 에러남: Navigation controller 못가져와서
}
에러 : 뷰컨트롤러 인스턴스를 그냥 불러올 경우
그렇지만 코드로 UI를 구현했으면 이 방식도 사용 가능
func presentStockModifyView() {
let stockModifyNavController = StockModifyNavController()
show(stockModifyNavController, sender: nil) //새로운 방식
}
유용한 링크 : [iOS] View Controller 생성 관련 메소드 정리 - instantiateViewController & viewDidLoad
Author And Source
이 문제에 관하여(화면전환시 필요한 뷰컨트롤러 생성 메서드 instantiateViewController), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev_jane/화면전환시-뷰-컨트롤러를-불러올때instantiateViewControlleridentifier-사용저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)