繁体   English   中英

将新的StoryBoard添加到UITabbarController

[英]Adding new StoryBoard to UITabbarController

我的应用程序中有很多故事板。 以前我的应用程序不是基于UITabBar的应用程序,但是现在我决定采用一种更UITabBar方式。 现在,我要将情节UITabBarController添加到UITabBarController 我打开了一个情节提要板并将其嵌入到UITabBarController中,但是现在我不知道如何将其他Storybord的第一个UIViewControllers添加到我的Tabbar中。 我没有任何tabBarController属性等。

任何想法我如何可以将不同的故事板添加到一个UITabBarController

如果您不想在一个情节提要板上全部移动,则应参考选项卡栏控制器,并以编程方式添加每个情节提要的初始视图控制器。

我想我的第一个问题/关注点是为什么您会有这么多故事板。 为什么不将所有视图控制器都放在一个情节提要板上? 如果您将所有View Controller放在同一个情节提要板上,那么将它们连接到UITabBarController就是一件很简单的事情-按住Control并从UITabBarController拖动一个所需的视图控制器即可。

如果出于某种原因需要将视图控制器分布在多个情节提要中,则应该能够以以下方式以编程方式加载它们。 在UITabBarController的子类中:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"YourStoryBoardHNameHere1" bundle:nil];
    UIViewController *vc1 = [storyboard1 instantiateViewControllerWithIdentifier:@"YourVCNameHere1"];
    UIStoryboard *storyboard2 = [UIStoryboard storyboardWithName:@"YourStoryBoardHNameHere2" bundle:nil];
    UIViewController *vc2 = [storyboard2 instantiateViewControllerWithIdentifier:@"YourVCNameHere2"];
    self.viewControllers = @[vc1,vc2];
}

N8P的答案是Swift 3:使用多个情节提要板实现TabBarController。

   func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    let tabBar = UITabBarController()
    tabBar.viewControllers = self.getArrayOfViewControllers()
    self.customiseTabItems(tabBar: tabBar.tabBar)
    // set tabBar as root

    self.window?.rootViewController = tabBar
    self.window?.makeKeyAndVisible()
    return true
}

看例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM