UINavigationController与UITabBarController相关问题

UINavigationController与UITabBarController混用是非常常见的,有时候会遇到UINavigationController推出(push)出controller后隐藏UITabBarController的问题,很容易对吧.

源码如下:

  1. //
  2. // AppDelegate.m
  3. // NavigationController
  4. //
  5. // Copyright (c) 2014年 Y.X. All rights reserved.
  6. //
  7.  
  8. #import "AppDelegate.h"
  9. #import "RootViewController.h"
  10.  
  11. #define CreateNavigationControllerWith(controller) \
  12. [[UINavigationController alloc] initWithRootViewController:controller]
  13.  
  14. @implementation AppDelegate
  15.  
  16. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  17. {
  18. self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  19.  
  20. // 初始化导航栏控制器
  21. UINavigationController *newProductNC = \
  22. CreateNavigationControllerWith([RootViewController new]);
  23.  
  24. // 初始化TabBarController
  25. UITabBarController *rootBC = [[UITabBarController alloc] init];
  26. rootBC.viewControllers = @[newProductNC];
  27.  
  28. // 交给系统管理
  29. self.window.rootViewController = rootBC;
  30.  
  31. self.window.backgroundColor = [UIColor whiteColor];
  32. [self.window makeKeyAndVisible];
  33. return YES;
  34. }
  35.  
  36. @end
  1. //
  2. // RootViewController.m
  3. // NavigationController
  4. //
  5. // Copyright (c) 2014年 Y.X. All rights reserved.
  6. //
  7.  
  8. #import "RootViewController.h"
  9. #import "SecondViewController.h"
  10.  
  11. @interface RootViewController ()
  12.  
  13. @end
  14.  
  15. @implementation RootViewController
  16.  
  17. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  18. {
  19. self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  20. if (self)
  21. {
  22. self.title = @"YouXianMing";
  23. }
  24. return self;
  25. }
  26.  
  27. - (void)viewDidLoad
  28. {
  29. [super viewDidLoad];
  30.  
  31. // 设定背景色
  32. self.view.backgroundColor = [UIColor whiteColor];
  33.  
  34. // 点击手势
  35. UITapGestureRecognizer *tapGesture = \
  36. [[UITapGestureRecognizer alloc] initWithTarget:self
  37. action:@selector(tapEvent:)];
  38.  
  39. // 添加手势
  40. [self.view addGestureRecognizer:tapGesture];
  41. }
  42.  
  43. - (void)tapEvent:(UIGestureRecognizer *)sender
  44. {
  45. [self.navigationController pushViewController:[SecondViewController new]
  46. animated:YES];
  47. }
  48.  
  49. @end
  1. //
  2. // SecondViewController.m
  3. // NavigationController
  4. //
  5. // Copyright (c) 2014年 Y.X. All rights reserved.
  6. //
  7.  
  8. #import "SecondViewController.h"
  9.  
  10. @interface SecondViewController ()
  11.  
  12. @end
  13.  
  14. @implementation SecondViewController
  15.  
  16. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  17. {
  18. self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  19. if (self)
  20. {
  21.  
  22. }
  23. return self;
  24. }
  25.  
  26. - (void)viewDidLoad
  27. {
  28. [super viewDidLoad];
  29. self.view.backgroundColor = [UIColor whiteColor];
  30. }
  31.  
  32. @end

效果:

将RootViewController.m中tapEvent:修改一下,如下所示:

效果(注意看底部的隐藏效果哦):

注意:隐藏与取消隐藏是成对出现的.

附录:

-修改系统颜色样式-

http://stackoverflow.com/questions/19504291/changing-the-tint-color-of-uibarbuttonitem

UINavigationController与UITabBarController相关问题的更多相关文章

  1. UIViewController、UINavigationController与UITabBarController的整合使用

    UINavigationController与UITabBarController是iOS开发中最常用的两种视图控制器,它们都属于UIViewController的子类,继承关系如下: @interf ...

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

    iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)   前面我们介绍了StoryBoard这个新技术,和纯技术 ...

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

    iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)   这里我们就直接上实例: 一:新建一个项目singleV ...

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

      环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)   研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自 ...

  5. UINavigationController和UITabBarController

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

  6. UINavigationController与UITabbarController的样式

    之前虽然也手写过这两中视图控制器,但是更多的还是使用SB来创建,最近发现了一些问题,现在总结一下. 1.改变UINavigationBar的颜色 在UINavigationController中,之前 ...

  7. UINavigationController 与 UITabBarController

    http://www.cnblogs.com/YouXianMing/p/3756904.html // index start from 1. UITabBarItem *newsItem = [[ ...

  8. UINavigationController  和 UITabBarController

    UINavigationController当设置根控制器的时候,意思就是把根控制器压入栈内,当我们push的时候,我们把下一个控制器压入栈内,当我们pop的时候把上面的控制器的内存释放   UITa ...

  9. UINavigationController和UITabBarController合用

    一.创建一个 Tabbed Application.默认创建的是带有两个Tab的工程. 二.在AppDelegate.h里面添加 @property (strong, nonatomic) UINav ...

随机推荐

  1. Sklearn-RandomForest

    在scikit-learn中,RandomForest的分类类是RandomForestClassifier,回归类是RandomForestRegressor,需要调参的参数包括两部分,第一部分是B ...

  2. springboot 常用插件

    热部署 使用run as -java application, 把spring-loader-1.2.4.RELEASE.jar下载下来,放到项目的lib目录中,然后把IDEA的run参数里VM参数设 ...

  3. 代码查看php是否已开启rewrite功能模块

    通过php代码来查询,是否把rewrite模块打开了 <?php $result = apache_get_modules(); if(in_array('mod_rewrite', $resu ...

  4. Eclipse svn 中文转成英文

  5. NFS文件共享服务搭建

    一.概述 NFS工作流程 1.由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求. 2.NFS服务端的R ...

  6. 下拉框多选实现回显及sql

    <td class="tabTd"><label>客户来源:</label></td> <td><select c ...

  7. drawRect:和layoutSubview的区别

    关于这两个方法的区别 还是有点意思的. UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.setNeedsDisplay会调用自动调用draw ...

  8. IT农民的开发人员工具清单(2013年)

    IT行业日新月异,每天都不断变化着.作为一名混迹IT行业小有几个年头码农来说,不仅要时刻提高自身技术,也要不断更新自己开发工具.这些工具都是我吃饭的饭碗.饭碗旧了也是需要买个新的.转眼之间,已到201 ...

  9. Java基础教程(15)--枚举类型

      枚举类型定义了一个枚举值的列表,每个值是一个标识符.例如,下面的语句声明了一个枚举类型,用来表示星期的可能情况: public enum Day { SUNDAY, MONDAY, TUESDAY ...

  10. JDK安装与环境变量全过程-鹏鹏

    首先先讲下JDK的含义以及用处: JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Jav ...