所以你有几个选择。假设您的选项卡视图是导航控制器。在这种情况下,您可以拥有一个临时视图控制器,它会立即推送您要使用的“真实”视图控制器,而“真实”视图控制器则实现了以下方法。稍后,通过重置 navigationControllers viewControllers 数组,您可以永久摆脱临时控制器。
- (BOOL) hidesBottomBarWhenPushed { return YES; }
如果这对您不起作用,那么您可以使用 window.rootViewController 玩游戏。在启动时,您创建您的 viewController 并将其设置为 rootViewController。稍后,当您想要一个标签栏时,您可以向 appDelegate 发送消息以创建一个 tabBarController 并使您的视图成为第一个视图控制器(原样!)。我刚刚使用 Xcode Tab Bar 项目在一个简单的演示应用程序中验证了这一点。这是我使用的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
self.window.rootViewController = viewController1;
[self.window makeKeyAndVisible];
return YES;
}
- (void)switcher
{
[viewController1.view removeFromSuperview];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.window.rootViewController = self.tabBarController;
}