建个空的iOS工程

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];// Override point for customization after application launch.self.window.backgroundColor = [UIColor whiteColor];[self.window makeKeyAndVisible];// MyFirstViewController *viewCtrl1 = [[MyFirstViewController alloc] init]; viewCtrl1.title = @"viewctrl1"; viewCtrl1.view.backgroundColor = [UIColor blueColor]; UINavigationController *navgCtrl1 = [[UINavigationController alloc] initWithRootViewController: viewCtrl1]; // UIViewController *viewCtrl2 = [[UIViewController alloc] init]; viewCtrl2.title = @"viewctrl2"; viewCtrl2.view.backgroundColor = [UIColor redColor]; UINavigationController *navgCtrl2 = [[UINavigationController alloc] initWithRootViewController: viewCtrl2]; // UIViewController *viewCtrl3 = [[UIViewController alloc] init]; viewCtrl3.title = @"viewctrl3"; viewCtrl3.view.backgroundColor = [UIColor yellowColor]; UINavigationController *navgCtrl3 = [[UINavigationController alloc] initWithRootViewController: viewCtrl3]; // UITabBarController *tabBarCtrl = [[UITabBarController alloc] init]; tabBarCtrl.view.frame = self.window.frame; tabBarCtrl.viewControllers = [NSArray arrayWithObjects: navgCtrl1 ,navgCtrl2, navgCtrl3 ,nil]; self.window.rootViewController = tabBarCtrl; return YES; }

创建自定义 MyFirstViewController (继承自UIViewController)

- (void)viewDidLoad
{[super viewDidLoad];// Do any additional setup after loading the view.UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];[button addTarget:self action:@selector(Target:) forControlEvents:UIControlEventTouchUpInside];[button setTitle:@"Target" forState:UIControlStateNormal]; button.frame = CGRectMake(100, 200, 120, 44); [self.view addSubview:button]; } -(void)Target:(id)sender { ChangeViewController *changViewCtrl = [[ChangeViewController alloc] init]; [self.navigationController pushViewController:changViewCtrl animated:YES]; }

自定义ViewController ChangeViewController

- (void)viewDidLoad
{[super viewDidLoad];// Do any additional setup after loading the view.self.view.backgroundColor = [UIColor colorWithRed:0.5 green:0.1 blue:0.9 alpha:1.0]; }

小结: 用UINavigationController 配合 UITabBarController,很多app都用到这样的交互,其关键点在于,给每个视图控制器(ViewController)添加导航控制器(UINavigationController).

UINavigationController *navgCtrl1 = [[UINavigationController alloc] initWithRootViewController: viewCtrl1];

把导航控制器打包进TabBarController

tabBarCtrl.viewControllers = [NSArray arrayWithObjects: navgCtrl1 ,navgCtrl2, navgCtrl3 ,nil];

把tabBarController设为应用程序rootViewController.

self.window.rootViewController = tabBarCtrl;

这样的话,导航控制器的后续操作可以参考自己以前写的关于 UINavigationController 的用法。以及自定义TabBarItem,在前篇文章中也有说明.

转载于:https://www.cnblogs.com/Free-Thinker/p/5009848.html

UITabBarController 笔记(三) UITabBarController 配合 UINavigationController 的使用相关推荐

  1. 【Visual C++】游戏开发笔记三十七 浅墨DirectX提高班之五 顶点缓存的红颜知己 索引缓存的故事

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  2. 【Visual C++】游戏开发笔记三十三 浅墨DirectX提高班之二 化腐朽为神奇:DirectX初始化四步曲

    这篇文章里,我们将迈出精通DirectX的第一步,先了解典型Direct3D程序的书写流程,然后学习COM接口的对象的一些思想,然后按照"四步曲"的思路,系统地学习DirectX的 ...

  3. MySQL学习笔记(三)查询

    写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...

  4. 【Visual C++】游戏开发笔记三十七 浅墨DirectX提高班之五 顶点缓存的红颜知己:索引缓存的故事

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8304741 作者:毛星云(浅墨 ...

  5. 【Visual C++】游戏开发笔记三十三 浅墨DirectX提高班之二 化腐朽为神奇:DirectX初始化四步曲...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8197792 作者:毛星云(浅墨) ...

  6. 【Visual C++】游戏开发笔记三十三 浅墨DirectX提高班之二 化腐朽为神奇 DirectX初始化四步曲

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:  http://blog.csdn.net/zhmxy555/article/details/8197792 作者:毛星云(浅 ...

  7. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  8. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  9. Ethernet/IP 学习笔记三

    Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...

最新文章

  1. 关于学习Python的一点学习总结(10->设置字符串格式)
  2. Ubuntu中的root权限
  3. Java工程中引用Base64编码解码小记
  4. 蓝桥杯练习系统习题-算法提高2
  5. 信息系统项目管理师优秀论文:项目范围管理
  6. heima-Oracle学习-day1
  7. 非关系型数据库(非RDBMS)介绍
  8. 四六级成绩查询,你的『验证码』刷出来了吗?
  9. 02.vs2015编译qt动态库
  10. 腾讯QQ PC版9.1.7正式版上线 有些“老”功能越来越好用了
  11. bootstrap 2021-04-20
  12. End Game----OO最后一次博客作业
  13. 一套PumpLinx泵阀仿真分析攻略
  14. Surface的创建过程分析
  15. 【数据分析】数据分析达人赛3:汽车产品聚类分析
  16. XSS学习之xss20
  17. ipv4网络无访问权限
  18. WIN10安装cad2006提示无权限安装的解决办法
  19. 写给即将入行的程序员的一封信
  20. 页面访问量和网站访问量的统计

热门文章

  1. php根据不同的条件替换一段html代码中的不同的img标签
  2. Java开发知识点!手把手讲解-一个复杂动效的自定义绘制
  3. 我崩溃了!月薪30K必须掌握的开源项目Java中SPI机制
  4. pycharm中import呈现灰色原因
  5. java二级考试简单应用题,计算机二级考试Java语言模拟考试(2)
  6. list循环添加数据_List 去除重复数据的 5 种正确姿势!你知道几种?
  7. android studio中连接夜神报错 adb server version doesn't match this client
  8. html单选框背景图片,如何更改radio、checkbox选项框背景图?
  9. 网络推广专员教大家网站SEO优化中锚文本的使用技巧
  10. 网络推广中移动端优化如何在细节中取胜?