2017-04-25 35 views
0

所以我有這樣的代碼實例化,當按鈕被按下一個視圖控制器:Xcode 8:如何將數據傳遞給視圖控制器而不使用segue或storyboard?

@IBAction func addChapter(_ sender: Any) { 
    let addChapterController = AddChapterViewController() 
    self.present(addChapterController, animated: true, completion: nil) 
} 

如果沒有prepareForSegue,我如何將數據傳遞給這個新創建的視圖控制器?

+1

設置屬性:

class AddChapterViewController: UIViewController{ var name: String? var id: Int? // .... } 

所以,你現在可以使用它的屬性是這樣視圖控制器。 – rmaddy

回答

5

在你AddChapterViewController可以創建你想改變的變量,例如:在實例

@IBAction func addChapter(_ sender: Any) { 
    let addChapterController = AddChapterViewController() 
    addChapterController.name = "Name example" 
    addChapterController.id = 10 

    self.present(addChapterController, animated: true, completion: nil) 
} 
+0

嗨,我試過這個。但是,如果我嘗試在AddChapterViewController類的viewDidLoad方法中訪問它們,那麼我將獲得屬性名稱和ID的零值。 – iPhoneDeveloper

+0

@KKbot在這個例子中,只有在用戶按下按鈕時纔會設置屬性'name'和'id',如果你想在'viewDidLoad'中設置它的值,你應該在調用屬性之前將這段代碼移動到那裏。 –

+0

是的。謝謝。解決了這個問題。 – iPhoneDeveloper

相關問題