iOS、iPad-具有相同主视图和详细视图控制器的多个拆分视图控制器

iOS、iPad-具有相同主视图和详细视图控制器的多个拆分视图控制器,ios,ipad,uisplitviewcontroller,uitabbar,Ios,Ipad,Uisplitviewcontroller,Uitabbar,我有一个选项卡式应用程序,3个选项卡包含完全相同的屏幕,只是数据不同 为了实现这些屏幕的功能,我使用了分割视图控制器。 我需要做的是创建3个选项卡,所有这些选项卡都使用此拆分视图控制器(使用相同的主视图和详细视图控制器),而无需在情节提要中复制主视图和详细视图控制器三次 我尝试创建三个拆分视图控制器,并将它们链接到一个主视图控制器和一个局部视图控制器,但没有成功。这些控制器中只有一个实际使用了它们。另一个只是显示黑屏 关于如何做到这一点有什么建议吗 我想我是通过以下方法实现的: 在情节提要中,拆

我有一个选项卡式应用程序,3个选项卡包含完全相同的屏幕,只是数据不同

为了实现这些屏幕的功能,我使用了分割视图控制器。 我需要做的是创建3个选项卡,所有这些选项卡都使用此拆分视图控制器(使用相同的主视图和详细视图控制器),而无需在情节提要中复制主视图和详细视图控制器三次

我尝试创建三个拆分视图控制器,并将它们链接到一个主视图控制器和一个局部视图控制器,但没有成功。这些控制器中只有一个实际使用了它们。另一个只是显示黑屏


关于如何做到这一点有什么建议吗

我想我是通过以下方法实现的:

在情节提要中,拆分视图控制器的情节提要ID为“splitVc”:

然后,我在我的
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;
}
这给了我3个独立的
UISplitViewController
实例,每个实例分配给
UITabBarController
中3个选项卡中的1个,这是我的
UIWindow
的根视图控制器


这就是您想要的吗?

执行此操作时,控制台中是否会出现警告/错误?我并不真正使用故事板,但根据苹果公司的说法,当使用UISplitViewController时,它必须是rootViewController:“拆分视图控制器必须始终是您创建的任何接口的根。换句话说,必须始终将aUISplitViewController对象中的视图安装为应用程序窗口的根视图。拆分视图界面的窗格可能包含导航控制器、选项卡栏控制器或实现界面所需的任何其他类型的视图控制器。“此配置可能无法通过HIG,但我在Xcode中没有收到编译器/控制台警告。我不能保证苹果会同意这一点!;-)这正是我想要的,但现在我有了另一个有趣的问题。“tabBarController.selectedIndex”的值与所选选项卡不一致。这意味着,例如,我选择了第一个选项卡,然后选择了dex=1。然后我选择另一个选项卡并重新选择第一个选项卡。选定的索引现在是3。你知道如何修复它吗?我通过比较tabBar controller.tabBar.selectedItemHow/的标题解决了这个问题。你什么时候检查你的
selectedIndex
selectedItem
值?