화면전환시 필요한 뷰컨트롤러 생성 메서드 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

좋은 웹페이지 즐겨찾기