最开始的做法:使用segue将UITabbarController子页面的按钮和DetailVIewController连接起来,此时类型只能选择modal风格或其他,一旦我选择push风格,build时就会报错—“push只能应用在navigatorController中”。
我继续尝试过:将一组UINavigator页面(一个RootViewController和一个DetailViewController)嵌入到UITabItem,功能确实实现了,但是不完美,跳转到DetailViewController时,应用底部的tabbar一直存在。我要的效果是,在页面跳转的时候,tabbar也一起被push到左侧去。就好像整个UITabbarController的内容都被push到左侧隐藏了。
希望得到大家的帮助,谢谢!
1
black 2015-05-20 16:46:03 +08:00
DetailViewController *detail = ...;
detail.hidesBottomBarWhenPushed = YES; self.navigationController push... 懂了吗? |
2
black 2015-05-20 17:04:01 +08:00 1
UITabBarController 嵌入一组 UINavigationController (每个 tab 对应一个) 是很典型的 UI 结构,hidesBottomBarWhenPushed 属性也正是为了满足楼主你这种普遍需求设计的。
|
4
plutodai 2015-05-20 17:29:26 +08:00
如果不想push的时候tabbar也被push到左侧去的话,你可以这么做:
将RootViewConroller嵌入到UINavigationController中 RootViewConroller *rootVC = [[RootViewConroller alloc] init]; UINavigationController *rootNaVC = [[UINavigationController alloc] initWithRootViewController:rootVC]; UITabbarController *tabbarC = [[UITabbarController alloc] init]; [tabbarC setViewControllers:@[rootNaVC]]; self.window.rootViewConntroller = tabbarC; |
5
pysama OP 弄好了,真棒~
顺便优化下,在rootVC的页面不显示navBar - (void)viewWillAppear:(BOOL)animated { [self.navigationController setNavigationBarHidden:YES animated:animated]; } -(void)viewWillDisappear:(BOOL)animated { [self.navigationController setNavigationBarHidden:NO animated:animated]; } |