2014-10-29 68 views
0

我有一個表的詳細信息顯示按鈕帶來了MyDetailViewControllerperformSegueWithIdentifier:sender:我一直在設置一些變量。但事實證明,我需要更復雜的東西:我需要亞型MyDetailViewControllerMyFooController : MyDetailViewController,MyBarController : MyDetailViewController,等等)根據選擇的行。如何使用故事板延續到UIViewController的幾個子類型之一?

我的第一個想法是將destinationViewController分配給UIStoryboardSegueperformSegueWithIdentifer:sender:,但這是一個只讀變量。

有沒有一個簡單的方法來與故事板做到這一點?我應該創建一個自定義塞格?或者我應該以編程方式進行?

回答

0

您可以使用多個segse,每個控制器的子類型都有一個,您可以從一個viewController使用多少個實際限制,或者您可以根據選定的單元實例化一個視圖控制器,並手動將其推到堆棧,事中的臺詞:

MyBarController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"myBarController"]; // You set the identifiers in the storyboard itself 
[self.navigationController pushViewController:vc animated:YES]; 
+0

這就是當我說「以編程方式執行」時我所想到的。我想知道是否有一種方法可以使用Storyboard視覺設計界面來實現。 – 2014-10-29 23:21:13

+0

這就是多個階段發揮作用的地方。爲每個目標控制器製作一個賽門鐵克,並根據當前需要哪一個調用它們。 – Adis 2014-10-30 09:18:13

0

你不能多塞格斯連接到詳細披露按鈕,但你從控制器希望你可以連接多達塞格斯。實現tableView:accessoryButtonTappedForRowWithIndexPath:,並且該方法將在用戶點擊按鈕時被調用。您可以使用indexPath參數來決定執行哪個segue,然後使用performSegueWithIdentifier調用segue。

0

作爲第三種方法,你可以在故事板製作不同的原型細胞,給每一個不同的reuseIdentifier,並創建從每個原型細胞的不同塞格斯。然後在您的cellForRowAtIndexPath:方法中,根據行選擇正確的reuseIdentifier出列單元格。

相關問題