混合使用这两个控件的好处是我们可以在NavigationBar添加更多的东西,如标题,按钮等。让用户能够获得更多的信息。

UITabBarController的属性ViewControllers接受以UIViewController或者UIViewController子类为元素的数组。

因为UINavigationController属于UIViewController的子类,因此它当然就可以成为viewControllers的参数。

先来看效果:

原理和之前文章所说的基本一样:

实现代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //创建第一个视图控制器
self.firstViewController = [[UIViewController alloc] init];
self.firstViewController.view.backgroundColor = [UIColor brownColor];
self.firstViewController.title = @"first view";
self.firstViewController.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:
UITabBarSystemItemDownloads tag:1]; //创建第二个视图控制器
self.secondViewController = [[UIViewController alloc] init];
self.secondViewController.view.backgroundColor = [UIColor yellowColor];
self.secondViewController.title = @"second view";
self.secondViewController.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemHistory tag:2]; //初始化第一个UINavigationController
self.firstNavController = [[UINavigationController alloc]
initWithRootViewController:self.firstViewController]; //初始化第二个UINavigationController
self.secNavController = [[UINavigationController alloc]
initWithRootViewController:self.secondViewController]; //初始化UITabBarController
self.tabBarController = [[UITabBarController alloc] init]; //为viewControllers添加引用
self.tabBarController.viewControllers = @[self.firstNavController, self.secNavController]; self.window.rootViewController = self.tabBarController; return YES;
}

在iPhone上很多应用程序几乎都是以这种结构布局,实用性大,使用简单。

混合使用UITabBarController和UINavigationController的更多相关文章

  1. IOS开发之UITabBarController与UINavigationController混合使用

    ios开发中UITabBarController与UINavigationController混合使用是很多app的基础页面结构,下面是简单的的页面初始化的方法,在AppDelegate.m的 - ( ...

  2. 和iPhone有关的视图控制器:UIViewController、UITabBarController、UINavigationController及其混合用法

    iPhone中的view视图是应用程序对于数据最直观.最直接的呈现方式,如下是我在学习了iPhone中的视图控制器以及由其衍生的特殊子类的总结,希望对那些初学者有所帮助: UIViewControll ...

  3. 动画隐藏UITabBarController与UINavigationController

    动画隐藏UITabBarController与UINavigationController 效果图: 源码: AppDelegate.m // // AppDelegate.m // HideTabb ...

  4. UITabBarController 和 UINavigationController 的详解

    首先得搞清这两个控制器之间的层级关系,我们直接看官网给的图,如下所示: 从这张图可以看到:最右边的Assembled views是呈现给用户的界面,它左边的Window是最底层的窗口,重点来了,再往左 ...

  5. swift:用UITabBarController、UINavigationController、模态窗口简单的搭建一个QQ界面

    搭建一个QQ界面其实是一个很简单的实现,需要几种切换视图的控制器组合一起使用,即导航控制器.标签栏控制器.模态窗口.其中,将标签栏控制器设置为window的rootViewController,因为Q ...

  6. UITabBarController 笔记(三) UITabBarController 配合 UINavigationController 的使用

    建个空的iOS工程 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictiona ...

  7. UITabBarController及三种控制器的…

              第一部分:UITabBarController  标签视图控制器  UITabBarController  标签视图控制器继承自UIViewController,一经创建自带一个视 ...

  8. 控制器管理UINavigationController、UINavigationBar

    控制器管理 掌握 控制器以及view的多种创建方式 UINavigationController的简单使用:添加\移除子控制器 UINavigationBar内容的设置 控制器的生命周期方法 Segu ...

  9. iOS UITabBarController的使用

    UITabBarController 和 UINavigationController 几乎是iOS APP的标配. UITabBarController分栏(标签栏)控制器, 和UINavigati ...

随机推荐

  1. EC笔记:第三部分:14、在资源管理类中小心Copying行为

    场景 上一节实现了智能指针,其中的拷贝构造函数和赋值运算符是通过增加/减少指针的引用计数来操作的.但是如果是管理一个独占资源呢?我们希望在一个资源使用时被锁定,在使用完毕后被释放. #include ...

  2. [(ngModel)]的实现原理

    讨论[(ngModel)]之前,先讲下属性绑定和事件绑定.   在属性绑定中,值从模型中流动到视图上的目标属性.[],通过把属性名放在方括号中来标记出目标属性.这是从模型到视图的单向数据绑定.   在 ...

  3. 笔记:xubuntu下如何让系统默认使用nvidia显卡,而不是intel集显

    经反复折腾,得到如下的解决方法: prime-select nvidia 简单吧,但关系是如果让它开机自动执行一次. 反复折腾了xinitrc ,~/.xinitrc , /etc/rc.local ...

  4. Mybatis学习(一)

    1)先导入pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww ...

  5. 使用insertBefore实现insertAdjacentHTML()

    Element.insertAdjacentHTML()方法由IE引入,并在HTML5中标准化,它将任意的HTML标记字符串插入到指定的元素“相邻”的位置. insertAdjacentHTML()有 ...

  6. ssh改https为ssh

    第一:设置Git的user name和email: 第二:然后生成key 这里会生成两个文件 id_rsa 和 id_rsa.pub 第三:登录你的GITHUB账号 看下图 第四:测试下是否成功 第五 ...

  7. jQuery为开发插件提拱了两个方法:jQuery.fn.extend(); jQuery.extend();

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype ...

  8. JS+CSS3人物奔跑动画

    查看效果:http://hovertree.com/texiao/jquery/58/ 效果图: 代码: <!DOCTYPE html> <html> <head> ...

  9. dialog 模块化窗口

    xDialog 方法 说明 参数 modal(opts) 模块化弹窗 opts={ title:'标题' , width : '宽度(400)', height : '高度(300)', button ...

  10. Using Dagger2 in Android

    Dagger2是一个Java和Android的依赖注入框架. 本文介绍Android中dagger2的基本使用. 其中包括@Inject, @Component, @Module和@Provides注 ...