簡體   English   中英

如何使用情節提要選擇到UIViewController的幾種子類型之一?

[英]How to segue to one of several subtypes of UIViewController with a storyboard?

我有一個表,其詳細信息顯示按鈕調出了MyDetailViewController並且在performSegueWithIdentifier:sender:我一直在設置一些變量。 但是事實證明,我需要更復雜的東西:根據選擇的行,我需要MyDetailViewController 子類型MyFooController : MyDetailViewControllerMyBarController : MyDetailViewController等)。

我的第一個想法是在performSegueWithIdentifer:sender:分配給UIStoryboardSegue中的destinationViewController ,但這是一個只讀變量。

有沒有一個簡單的方法可以通過情節提要來做到這一點? 我應該創建自定義Segue嗎? 還是應該以編程方式進行?

您可以使用多種選擇,一種用於您的控制器的每個子類型,對一個viewController可以使用的數量沒有實際限制,或者可以根據所選的單元實例化一個視圖控制器,然后按入手動將其放在堆棧中,如下所示:

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

您不能將多個序列連接到詳細信息披露按鈕,但是可以從控制器連接任意數量的序列。 實現tableView:accessoryButtonTappedForRowWithIndexPath :,當用戶點擊按鈕時將調用該方法。 您可以使用indexPath參數來確定要執行哪個segue,然后使用performSegueWithIdentifier調用該segue。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM