UINavigationController和UITabBarController

UINavigationController。展示上方的导航栏。UITabBarController,展示下方的tab栏。这2个组件都用得挺多

事实上另一个UIToolBar,能够单独使用,只是目測不太经常使用

container controller

UINavigationController和UITabBarController,都属于container controller。

用来容纳实际承载业务的ViewController

UIViewController *first = [[FirstViewController alloc] init];
UINavigationController *contactNav = [[UINavigationController alloc] initWithRootViewController:first];


然后是UITabBarController的使用方法:

UITabBarController *tab = [[UITabBarController alloc] init];
    
UIViewController *first = [[FirstViewController alloc] init];
UINavigationController *contactNav = [[UINavigationController alloc] initWithRootViewController:first];
    
UIViewController *second = [[SecondViewController alloc] init];
UINavigationController *reportNav = [[UINavigationController alloc] initWithRootViewController:second];
    
tab.viewControllers = @[contactNav, reportNav];

假设既须要导航栏,又要下方的tab栏,就能够用这种方法。先把实际的ViewController装到NavigationController里,再把NavigationController装到TabBarController里

控制导航栏和tab栏

控制导航栏和tab栏的button。不是由container controller自己做的,而是由实际的ViewController负责的,ios的这个设计比較灵活。能够实现同一个Navigation里的ViewController有各自独立的导航栏button。API也不复杂

UIBarButtonItem *logo = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"logo"] style:UIBarButtonItemStylePlain target:self action:@selector(logoPressed:)];
self.navigationItem.leftBarButtonItem = logo;
        
UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil];
UIBarButtonItem *search = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:nil action:nil];
NSArray *rightButtons = [[NSArray alloc] initWithObjects:add, search, nil];
self.navigationItem.rightBarButtonItems = rightButtons;

self.title = @"通讯录首页";
        
self.tabBarItem.image = [UIImage imageNamed:@"logo"];
self.tabBarItem.title = @"通讯录";

通过ViewController自带的property navigationItem,就能够分别设置左边和右边的button了。假设ViewController没有包括在NavigationController里,这个属性貌似为nil。

title是在nav栏上显示的文字。tabBarItem是用来控制tab栏的显示,能够设置image和titile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值