2017-02-08 14 views
3

Я пытаюсь сделать следующее и не смог добавить новое представление viewcontrollers. Это единственный способ представить контроллер представления? Невозможно добавить представление из другого представления viewboard viewcontrollers?Добавление нового представления Viewcontroller как subview

//Working 
    let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "customView") as! CustomViewController 

    self.present(viewcontroller , animated: true, completion: nil) 

    //Not working 
    let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "customView") as! CustomViewController 
    vc.view.frame = self.view.frame 
    self.view.addSubview(vc.view) 

ответ

7

Вы должны также добавить CustomViewControllerChildViewController, как в текущем контроллере.

let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "customView") as! CustomViewController 
vc.view.frame = self.view.bounds 
self.addChildViewController(vc) 
self.view.addSubview(vc.view) 
vc.didMove(toParentViewController: self) //OR vc.willMove(toParentViewController: self) 
+0

вы пропустили еще одну строку –

+0

или использовать vc.willMove (toParentViewController: самостоятельная) –

+0

@ Anbu.Karthik отредактирована для этого –