2016-11-15 77 views
0

是否有方法以編程方式實例化視圖控制器而不使用故事板標識符。我想將CNContactPickerController推入我的根視圖控制器。如何以編程方式實例化視圖控制器,而不使用故事板

let controller = CNContactPickerViewController() 
controller.delegate = self 
navigationController?.present(controller, animated: true, completion: nil) 

我這樣做,但在contactPicker(代表)我從故事板推VC在那裏我救我從特定聯繫人想要的信息。 問題:當我彈出我想去上CNConctactPickerControllerView最後一個視圖控制器,但我去的第一個視圖控制器 我試圖解僱,但沒有發生在..

回答

3

有這樣做的問題是,NONE您的視圖控制器的用戶界面的創建。你正在做的只是實例化類的一個實例。沒有相應的用戶界面被創建,您的IBOutlet也將是零。

您有2個選項,您可以使用接口構建器並從筆尖或故事板實例化,或者您在代碼中手動創建您的用戶界面全部

爲了提高可恢復性,您可以在CNContactPickerViewController上創建一個靜態方法來爲您處理故事板實例。看到以下內容:

class CBContactPickerViewController: UIViewController { 

    static func fromStoryboard() -> CNContactPickerViewController { 
     return UIStoryboard(name: "foobar", bundle: nil).instantiateViewController(identifier: "CNContactPickerViewController") as! CNContactPickerViewController 
    } 
} 

然後您可以利用這個如下:

self.present(viewController: CNContactPickerViewController.fromStoryboard(), animated: true, completion: nil) 
相關問題