UINavigationController和UITabBarController合用

开发环境:Xcode4.5

很多时候我们创建一个基于UITabBarController的application以后还希望能够在每个tab view都可以实现导航控制,即添加一个UINavigationController来实现tabview内部的view之间的切换,这即是本文所要介绍的。

一、创建一个 Tabbed Application.默认创建的是带有两个Tab的工程。

二、在AppDelegate.h里面添加

@property (strong, nonatomic) UINavigationController *NaviView1Controller;
@property (strong, nonatomic) UINavigationController *NaviView2Controller;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    UIViewController *viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil] autorelease];
    viewController1.title = @"View1";
    self.NaviView1Controller = [[[UINavigationController alloc] initWithRootViewController:viewController1] autorelease];  

    UIViewController *viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];
    viewController2.title = @"View2";
    self.NaviView2Controller = [[[UINavigationController alloc] initWithRootViewController:viewController2] autorelease];  

    self.tabBarController = [[[UITabBarController alloc] init] autorelease];  

    self.tabBarController.viewControllers = @[self.NaviView1Controller, self.NaviView2Controller];  

    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

运行一下程序,可以看到每个Tab view都自动多了一个NavigationBar在顶部。

三、添加两个新的View测试NavigationController。

1. 创建Test1ViewController类,以及对应的xib文件。

2. 创建Test2ViewController类,以及对应的xib文件。

3. 如果你的iPhone iOS版本低于6.0,在xib的设置里需要勾掉autolayout选项。

四、在Tab view 1的xib文件里添加一个按钮,并设置相应的IBOutlet, IBAction.如下图:

五、编写代码逻辑。

在FirstViewController.m中。编写函数gotoTest1View

  1. - (IBAction)gotoTest1View:(id)sender {
  2. Test1ViewController *SRDVController = [[Test1ViewController alloc]init];
  3. [self.navigationController pushViewController:SRDVController animated:YES];
  4. [SRDVController release];
  5. }

同理可以测试,Test2ViewController.不再赘述。

六、代码下载:http://download.csdn.net/detail/lovefqing/4845092

时间: 2024-12-26 10:52:20

UINavigationController和UITabBarController合用的相关文章

iOS开发——实战OC篇&环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)

环境搭建之StoryBoard(玩转UINavigationController与UITabBarController) 研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自己正打算开始着手做一个项目,可是不知道怎么下手,感觉前面学了好多,可是回头想想却又很难下手,其中最主要的就是第一步环境的搭建,当然在这之前还有选题和素材,但是那些对于ios开发来说都不是技术上的问题或者在以后公司里面一半都不是我们所考虑的.所以今天开始我将以三篇简短但又实用的文章给大家介绍一下,怎么搭建一个

UIViewController、UINavigationController与UITabBarController的整合使用

UINavigationController与UITabBarController是iOS开发中最常用的两种视图控制器,它们都属于UIViewController的子类,继承关系如下: @interface UITabBarController : UIViewController <uitabbardelegate, nscoding=""> @interface UINavigationController : UIViewController UINavigation

iOS开发——实战OC篇&amp;环境搭建之Xib(玩转UINavigationController与UITabBarController)

iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController) 前面我们介绍了StoryBoard这个新技术,和纯技术编程的代码创建界面,本篇我们将介绍一个老的技术,但是在很多的公司或者库里面还是使用这个技术,既然如此它肯定有他的好处,至于好处这里我就不一一介绍了.在Xcode5之前是只能使用Xib或者代码的,而代码又对于很多初学者来说算是一个难题.毕竟不知道怎么下手.所以我就总结了一下这段时间自己编写程序的一个实例来说明怎么

iOS开发——实战OC篇&amp;环境搭建之纯代码(玩转UINavigationController与UITabBarController)

iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleView Controller,命名未iCocos 二:由于我们使用的纯代码实现的,所以删除其中的StoryBoard和Viewtroller的两个文件 三:新建一个继承自TabBar Controller的类,我们命名问iCocos ViewController 三:在Appdelegate的实现文件中导入刚刚

UINavigationController与UITabBarController相关问题

UINavigationController与UITabBarController相关问题 UINavigationController与UITabBarController混用是非常常见的,有时候会遇到UINavigationController推出(push)出controller后隐藏UITabBarController的问题,很容易对吧. 源码如下: // // AppDelegate.m // NavigationController // // Copyright (c) 2014年

一张图让你清晰 UIViewController,UINavigationController和 UITabBarController的层次关系

在学习多视图控制器的时候,曾经有一个问题一直困扰着我,就是给标签栏title赋值的问题. 就常用的层次关系来说,一个标签栏视图 里面 套 一个 导航视图 ,导航视图 里 套 我们展示内容 的 内容视图 . UITabBarController->UINavigationController->UIViewController UITabBarController和UINavigationController 都继承自UIViewController UIViewControlleller  的

StoryBoard初探(二):使用UINavigationController和UITabBarController

UINavigationController StoryBoard的Segue类型有三种:Push,Modal,Custom.其中Push类型的Segue需要用到UINavigationController.第一步,先清空之前所有的连线和连接,选择ViewController,打开Editor菜单,选择Embed In选项中的Navigation Controller. 主窗口区域会出现一个UINavigationController实例 按照第一篇的方式,Ctrl连线ViewControlle

UINavigationController和UITabBarController

目录 概述 UINavigationController UITabBarController 实用功能 待解决 概述 UINavigationController UITabBarController 实用功能 待解决

UINavigationController与UITabbarController的样式

之前虽然也手写过这两中视图控制器,但是更多的还是使用SB来创建,最近发现了一些问题,现在总结一下. 1.改变UINavigationBar的颜色 在UINavigationController中,之前只需要设置UINavigationController.navigationBar.tintColor 就可以改变navigationBar的颜色了,在最新的API中苹果对这个属性就行了修改了. 添加了一个属性barTintColor,以前的tintColor不再对bar的颜色产生影响,改变颜色需要