Cocoa学习

我的Cocoa/Cocoa Touch学习笔记

推View Controller时隐藏TabBar

设想一个场景,RootViewController是一个TabBarController,里面的子Controller是一个NavigationController。NavigationController的子ViewController在执行-pushViewController:animated:的时候,默认情况下,这个新的ViewController将会被UITabBar覆盖。

但是有时,我们希望推入这个新的ViewController的时候,TabBarController也被推走。要做到这一点其实很简单,只需要在这个新的ViewController上设置hidesBottomBarWhenPushed属性为YES

示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
// 初始化ViewController的层级结构
UIViewController *vc1 = [[UIViewController alloc] initWithNibName:@"SomeViewControllerNibName" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc1];
UITabBarController *tc = [[UITabBarController alloc] init];
tc.viewControllers = @[nav];

...

// 推入新的ViewController
UIViewController *vc2 = [[UIViewController alloc] initWithNibName:@"SomeOtherViewControllerNibName" bundle:nil];
vc2.hidesBottomBarWhenPushed  YES; //这是关键!
[vc1.navigationController pushViewController:vc2 animated:YES];

就这么简单。

后记:好久没有写Blog了,2014年希望自己能勤快一点,多更新些。哪怕是一些很小的知识点,也尽量记录和分享出来,就当是给自己做备忘。

(全文完)

Comments