首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示UITabBar而不显示RootViewController

显示UITabBar而不显示RootViewController
EN

Stack Overflow用户
提问于 2014-03-04 09:03:55
回答 2查看 1.1K关注 0票数 1

我有一个LoginViewController,也就是RootViewController。这个ViewController不应该包含TabBar。ViewController的其余部分应该包含UITabBar,但它没有显示。如果我将tabBar设置为rootController,它将在视图控制器中显示tabBar。这也会使第一个选项卡成为它不应该使用的rootviewcontroller。

那么,我的问题是,如何在没有rootViewController的情况下使loginview成为tabBar,并且仍然在其他视图控制器中显示tabBar?

我的代码:

代码语言:javascript
复制
tabBarController = [[UITabBarController alloc] init];

MenuViewController *firstTab = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:firstTab];


FixtureViewController *secondTab = [[FixtureViewController alloc] initWithNibName:@"FixtureViewController" bundle:nil];
UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:secondTab];

WorldCupViewController *thirdTab = [[WorldCupViewController alloc] initWithNibName:@"WorldCupViewController" bundle:nil];
UINavigationController *navController3 = [[UINavigationController alloc] initWithRootViewController:thirdTab];

LoginViewController *loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
UINavigationController *navController4 = [[UINavigationController alloc] initWithRootViewController:loginView];



self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[navController, navController2, navController3];

navController.tabBarItem.image = [UIImage imageNamed:@"message-7"];
navController2.tabBarItem.image = [UIImage imageNamed:@"football-32"];
    navController3.tabBarItem.image = [UIImage imageNamed:@"trophy-32"];
[[UITabBar appearance] setTintColor:[UIColor colorWithRed:110/255.0f green:89/255.0f blue:196/255.0f alpha:1.0f]];

[self.window setRootViewController:navController4];
[self.window makeKeyAndVisible];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-04 09:40:27

您需要做的是将应用程序从LoginViewController转换到Tabbar。我建议做的是将LoginViewController替换为TabBar作为rootViewController。

下面是一些示例代码,在您的AppDelegate中执行此操作

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

     LoginViewController *loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
     UINavigationController *navController4 = [[UINavigationController alloc] initWithRootViewController:loginView];

     [self.window setRootViewController:navController4];
     [self.window makeKeyAndVisible];

     return YES;
}

-(void)transitionToTabBar
{

   // Set the TabBar how you are in your sample code, this is just an example.
   [self.window setRootViewController:[[UITabBarController alloc] initWithNibName:@"SomeNib" bundle:Nil]];

   [UIView transitionWithView:self.window duration:0.5f options:UIViewAnimationOptionTransitionCurlDown animations:^{
      [self.window makeKeyAndVisible];
   } completion:nil];
}
票数 1
EN

Stack Overflow用户

发布于 2014-03-04 09:39:56

您应该使用主视图控制器(对于MenuViewController),通过使用segue,您可以显示另一个视图控制器,其中包含TabBar。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22167245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档