博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
导航 navigationbar 与 tabbar
阅读量:4691 次
发布时间:2019-06-09

本文共 2593 字,大约阅读时间需要 8 分钟。

1.导航类型

UINavigationController 适用于父子页面的跳转

UITabBarController 适用于平级页面的跳转

 

2.presentViewController / dismissViewControllerAnimated和pushViewController / popViewController

(1)只有从UINavigationController导航过来的UIViewController 才可以使用pushViewController / popViewController,从其它导航进入的只能使用presentViewController / dismissViewControllerAnimated

(2)如果A界面是通过presentViewController进入的,那么在A界面里只能使用presentViewController导航,如果A界面是通过UINavigationController包装了一层进入,则可使用pushViewController导航。

(3)如果A界面是一个UITabBarController,进入时是通过presentViewController来导航的,那么子Tab里也只能通过presentViewController来导航,如果进入时是通过UINavigationController包装了一层进入,则可使用[self.tabBarController.navigationController pushViewController:abcdViewController animated:true];这种方式导航。

 

3.修改UINavigationController导航进入后导航栏的图标及文字

UIBarButtonItem* leftBar = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:@selector(homeBack)];

self.navigationItem.leftBarButtonItem = leftBar;

//可添加多个导航按钮

 

//    self.navigationItem.leftBarButtonItems = nil;

//同样右边的导航按钮也可以设置

 

4.创建UITabBarController时需注意,要先创建出来,然后通过UINavigationController包装后才能显示,否则tab子项不显示。创建格式如下

Java代码
  
  1. TabOneViewController* oneVC = [[TabOneViewController alloc]init];  
  2.     oneVC.view.backgroundColor = [UIColor whiteColor];  
  3.     UITabBarItem* item1 = [[UITabBarItem alloc]initWithTitle:@"tab1" image:nil tag:0];  
  4.     oneVC.tabBarItem = item1;  
  5.       
  6.     TabTwoViewController* twoVC = [[TabTwoViewController alloc]init];  
  7.     UITabBarItem* item2 = [[UITabBarItem alloc]initWithTitle:@"tab2" image:nil tag:1];  
  8.     twoVC.tabBarItem = item2;  
  9.   
  10.     HomeViewController* homeVC = [[HomeViewController alloc]init];  
  11.     NSArray* array = [[NSArray alloc]initWithObjects:oneVC,twoVC, nil];  
  12.     homeVC.viewControllers = array;  
  13.       
  14.     UINavigationController* navVC = [[UINavigationController alloc]initWithRootViewController:homeVC];  
  15.     [self presentViewController:navVC animated:YES completion:^{}];  
  16.       
  17.     //下面这种创建了HomeViewController后,HomeViewController下的子Tab不能通过push或者pop导航  
  18.     //    HomeViewController* homeVC = [[HomeViewController alloc]init];  
  19.     //    [self presentViewController:homeVC animated:YES completion:^{}];  

 

 

5.UITabBarController各页面之间的切换

实现UITabBarControllerDelegate协议

//实现协议方法,用于切换Tab时,更改页面的标题-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {    NSInteger index = tabBarController.selectedIndex;    NSString *title;    switch (index) {        case 0:            title = @"Message";            break;        case 1:            title = @"User List";            break;    }    self.title

参考文章:http://www.tuicool.com/articles/J7nIVbN

转载于:https://www.cnblogs.com/yangqinglong/p/5526269.html

你可能感兴趣的文章
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同!
查看>>
导入properties时的坑
查看>>
配置NRPE的通讯
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
修改node节点名称
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
项目开发总结报告(GB8567——88)
查看>>
SSH加固
查看>>
端口扫描base
查看>>
iOS IM开发的一些开源、框架和教程等资料
查看>>
FansUnion:共同写博客计划终究还是“流产”了
查看>>
python 二维字典
查看>>