2015-11-24 22 views
1

我只想知道如何在新的故事板中繼續添加到新的視圖控制器,而無需以編程方式創建新的視圖控制器。如何以編程方式在新的故事板中找到新的ViewController

的情景: 我有一個是完全建立在一個代碼視圖控制器和系統認爲我在故事板答:我想從被包含在故事板B.

這個視圖控制器到另一個視圖控制器Segue公司
  1. 如果此視圖控制器是使用Storyboard創建的,我可以創建一個附加到故事板參考(這是一個很好的建議)的segue。但它在代碼中,所以我不能這樣做。
  2. 我的另一種選擇是讓下一個視圖控制器完全在代碼中創建,這樣我就可以在不使用segse的情況下呈現它。這是一種痛苦,但會起作用。
  3. 我的第三個選擇是在代碼中初始化新的故事板,使用故事板標識符在代碼中初始化新的視圖控制器,然後使用導航控制器繼續操作。

如果還有其他選項我不知道請在下面包括它們!

回答

3

這段代碼允許您在應用程序中的任何位置繼續使用任何viewController,同時仍然可以使用storyboard構建viewController。

func settingsButtonPressed(sender:UIButton) { 
    let storyboard = UIStoryboard(name: "AccountLinking", bundle: nil) 
    let linkingVC = storyboard.instantiateViewControllerWithIdentifier("AccountLinkingTable") 
    self.navigationController?.pushViewController(linkingVC, animated: true) 
} 

感謝這個小功能節省了很多小時。

+0

當你調用'instantiateViewControllerWithIdentifier',是不是以編程方式創建viewController? – dudeman

+0

我應該編輯我的聲明,說你可以在故事板中構建視圖控制器。是的,它是以編程方式創建它們。 –

+0

同意。看起來不錯。 +1。 – dudeman

0

您可以覆蓋下面的函數來覆蓋segue調用。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    var destinationController = segue.destinationViewController 

} 
相關問題