我想我得到了它使用以下工作:
在故事板,拆分視圖控制器的故事板ID是「splitVc」:
![Storyboard Layout](https://i.stack.imgur.com/LWRvY.png)
然後,我用下面的代碼在我AppDelegate
:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UISplitViewController *splitVc1 = [self.window.rootViewController.storyboard
instantiateViewControllerWithIdentifier:@"splitVc"];
UISplitViewController *splitVc2 = [self.window.rootViewController.storyboard
instantiateViewControllerWithIdentifier:@"splitVc"];
UISplitViewController *splitVc3 = [self.window.rootViewController.storyboard
instantiateViewControllerWithIdentifier:@"splitVc"];
UITabBarController *tabBarVc = (UITabBarController *)self.window.rootViewController;
tabBarVc.viewControllers = @[splitVc1, splitVc2, splitVc3];
return YES;
}
這給了我什麼似乎是個單獨的實例210,每個分配給UITabBarController
中的3個選項卡中的一個,這是我的UIWindow
的根視圖控制器。
這就是你想要的嗎?
當你這樣做時,你沒有在控制檯中得到警告/錯誤?根據Apple的說法,我並沒有真正使用Storyboard,但使用UISplitViewController時它必須是rootViewController,「分割視圖控制器必須始終是您創建的任何界面的根。換句話說,您必須始終安裝視圖aUISplitViewController對象作爲應用程序窗口的根視圖,然後,您的分割視圖界面的窗格可能包含導航控制器,選項卡欄控制器或實現您的界面所需的任何其他類型的視圖控制器。 –
此配置可能無法通過HIG,但在Xcode中沒有編譯器/控制檯警告。我不保證蘋果會贊同這一點! ;-) – mbm29414
它正是我想要的,但現在我又有了一個有趣的問題。 「tabBarController.selectedIndex」的值與所選標籤不一致。這意味着例如我選擇第一個選項卡和selectedIndex = 1。然後我選擇另一個標籤並重新選擇第一個標籤。選定的索引現在是3.任何想法如何解決它? – Kladimir