视图以模态呈现:
[self presentModalViewController:modalNavController animated:YES];
此视图使用带有4个元素的UITabBarController。其中一个元素,“信息”有一个按钮,只有在可用时才可见。如果单击该按钮,则需要将其推送到另一个视图控制器,但我还想从其父视图中维护标签栏。无论是否保留标签栏,我都无法弄清楚如何做到这一点。我曾试图在所有可以成像的地方推动和呈现模式。该如何正确完成?
创建标签栏:
infoController.title = @"Info";
streetViewController.title = @"Street View";
reviewController.title = @"Reviews";
streetViewController.tabBarItem.image = [UIImage imageNamed:@"flag.png"];
infoController.tabBarItem.image = [UIImage imageNamed:@"openMarker.png"];
reviewController.tabBarItem.image = [UIImage imageNamed:@"reviews.png"];
UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.view.frame = CGRectMake(0, 0, 320, 460);
UINavigationController *infoNC = [[[UINavigationController alloc] initWithRootViewController:infoController] autorelease];
infoNC.navigationBarHidden = YES;
[tabBarController setViewControllers:
[NSArray arrayWithObjects:infoNC, streetViewController, reviewController, nil]];
[self.view addSubview:tabBarController.view];
答案 0 :(得分:2)
将视图控制器添加到标签栏控制器时,您需要执行以下操作:
MyCustomViewController *vc1 = [[MyCustomViewController alloc] initWithNibName:nil bundles:nil];
UINavigationController *nc1 = [[[UINavigationController alloc] initWithRootViewController:recipesRootView] autorelease];
[vc1 release];
然后添加nc1
而不是自定义视图。
然后在MyCustomViewController
到push
另一个视图控制器执行:
[self.navigationController pushViewController:(UIViewController *)page animated:YES];
这应该对你有用,并保留标签栏控制器。