2016-08-16 66 views
2

我感興趣的是從一個xib文件(當點擊一個按鈕時)從一個表視圖移動到另一個視圖控制器。我無法展示(通過主要故事板),因爲它們不在同一個故事板上。我想知道這是否可以通過編程完成,如果是這樣,請使用什麼樣的代碼。Swift Segue問題

如果您需要更多詳細信息,請讓我知道。

+2

從廈門國際銀行,那麼你不能,你有,如果你設計出的tableView裏面的故事板的細胞做編程,它的唯一可用,你不需要使用XIB設計定製細胞 – Tj3n

回答

1

您的編程方式示出的圖控制器選項有以下功能

從一個視圖控制器內

  • presentViewController
  • dismissViewController

從上導航的視圖控制器內堆棧

  • pushViewController
  • popToViewController
  • popToRootViewController
  • popViewController

要使用哪個函數是由在其中出現的視圖控制器的上下文來確定。

爲了呈現視圖控制器,如果您正在使用XIB和故事板,那麼通常的模式是首先從XIB或故事板實例化視圖控制器,然後使用presentViewController來呈現它。

一個例子是

let vc = UIViewController(nibName: "NAME_OF_THE_NIB", bundle: NSBundle.mainBundle()) 
self.presentViewController(vc, animated: true) { 
    // Add completion code here. 
} 

隨着導航棧可以使用便利功能壓入和彈出視圖控制器。

要明確術語,這些方法都不被認爲是塞格。該術語僅適用於在故事板中的視圖控制器之間移動。

1

如果您的單元格和您的視圖控制器在不同的故事板中,您可以(自iOS 9開始)在故事板引用之間使用segue。

請參閱Adding a Segue Between Two Storyboards

如果您的手機在自己的.xib不幸的是無法使用segue。

1

Segue在視圖控制器之間。所以你不能在xib中這樣做,因爲它只是視圖。您應該在表格視圖的視圖控制器中呈現/推送視圖控制器。你可以得到它的視圖控制器是這樣的:

tableView.viewController // and then present/push