這是怎樣的一個棘手的的解決方案,即使它是一個令人難以置信的常見情況。
1)一個想法是有一個空的根視圖控制器作爲您的細節,並處理管理下的細節,快速延續到您真正關心的細節視圖,並利用「替換」細節。這應該「技術上」修復左上角的「後退」按鈕,仍然允許您彈出到根目錄,而不是顯示空的控制器。雖然沒有測試過,所以我不確定。
編輯:在Xcode 6中,「替換」segue方便地由一個「show detail」segue處理,它專門用於分割視圖控制器上的這種類型的視圖處理。我建議僅在新項目中使用此方法。 See sample code.
2)另一個想法是在你的故事板中有單獨的導航控制器(一個連接,其餘的都擱淺)。一個用於每個細節視圖類型並在主菜單上點擊將簡單地將詳細視圖的導航控制器交換爲您關心的那個。
代碼類似於這樣在AppDelegate中:
self.detailNavigationController = [self.masterNavigationController.storyboard instantiateViewControllerWithIdentifier:@"MyChosenNavigationControllerStoryboardId"];
self.splitViewController.viewControllers = @[self.splitViewController.viewControllers[0], self.detailNavigationController];
self.splitViewController.delegate = (id)self.detailNavigationController.topViewController;
這樣做的缺點第二種方式是,在記憶測試中,它不會出現換一個新的導航控制器在釋放了所有的記憶了的舊的導航控制器正在使用。因此,使用簡單的應用程序很好,但不適合任何複雜的事情。
我認爲這是一個好方法。如果您事先知道選項,則可以在Table View中使用靜態單元格,然後在每個Detail View中分別放置不同的單元格。如果您沒有提前選擇,那麼您必須使用Prototype Cells,然後您必須使用需要使用performSeguewithIdentifier方法從代碼觸發的Generic Segues。您可以在這裏找到類似問題的解決方案 - http://swiftwala.com/multiple-detail-views –
[Splitview with multiple detail views using storyboarding。看到一個示例/教程?](http://stackoverflow.com/questions/7993168/splitview-with-multiple-detail-views-using-storyboarding-seen-an-example-tutori) – jrc