UINavigationController与UITabBarController相关问题

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

源码如下:

//
// AppDelegate.m
// NavigationController
//
// Copyright (c) 2014年 Y.X. All rights reserved.
// #import "AppDelegate.h"
#import "RootViewController.h" #define CreateNavigationControllerWith(controller) \
[[UINavigationController alloc] initWithRootViewController:controller] @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // 初始化导航栏控制器
UINavigationController *newProductNC = \
CreateNavigationControllerWith([RootViewController new]); // 初始化TabBarController
UITabBarController *rootBC = [[UITabBarController alloc] init];
rootBC.viewControllers = @[newProductNC]; // 交给系统管理
self.window.rootViewController = rootBC; self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
} @end
//
// RootViewController.m
// NavigationController
//
// Copyright (c) 2014年 Y.X. All rights reserved.
// #import "RootViewController.h"
#import "SecondViewController.h" @interface RootViewController () @end @implementation RootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
self.title = @"YouXianMing";
}
return self;
} - (void)viewDidLoad
{
[super viewDidLoad]; // 设定背景色
self.view.backgroundColor = [UIColor whiteColor]; // 点击手势
UITapGestureRecognizer *tapGesture = \
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(tapEvent:)]; // 添加手势
[self.view addGestureRecognizer:tapGesture];
} - (void)tapEvent:(UIGestureRecognizer *)sender
{
[self.navigationController pushViewController:[SecondViewController new]
animated:YES];
} @end
//
// SecondViewController.m
// NavigationController
//
// Copyright (c) 2014年 Y.X. All rights reserved.
// #import "SecondViewController.h" @interface SecondViewController () @end @implementation SecondViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{ }
return self;
} - (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
} @end

效果:

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

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

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

附录:

-修改系统颜色样式-

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

最新文章

  1. iOS 小谈开发者中的个人、组织(公司、企业)账号
  2. js实现找质因数
  3. presto-elasticsearch connector
  4. Android实现文章+评论(MVP,RxJava,Dagger2,ButterKnife)
  5. Thrift 个人实战--RPC服务的发布订阅实现(基于Zookeeper服务)
  6. free 命令解释
  7. HTML5 WebAudioAPI(三)--绘制频谱图
  8. 如何实现button像a标签一样跳转页面
  9. IQueryable与IQEnumberable的区别
  10. Sikuli:创新的图形化编程技术
  11. 【NO.7】HTTP请求-参数化
  12. 容器与Docker简介(三)Docker相关术语——微软微服务电子书翻译系列
  13. C#实现冲顶大会辅助工具 (截图+图像识别+搜索)
  14. C#判断画的图形是不是三角形
  15. Xcode 中的断言
  16. 小米手机Usb之studio安装不了解决办法
  17. zcu102 hdmi example(二)
  18. Spark架构原理
  19. PHP7.27: object
  20. 特征选择:Filter/Wrapper/Embedded

热门文章

  1. Nginx的几个常用配置和技巧
  2. Cloudera Impala源码分析: SimpleScheduler调度策略详解包括作用、接口及实现等
  3. 在word中优雅地插入代码
  4. elasticsearch分析系列
  5. css揭秘
  6. C语言——打印“Hello World!”,这么简单?
  7. 开源方案搭建可离线的精美矢量切片地图服务-4.Mapbox样式设计
  8. 源码速读及点睛:HashMap
  9. BG.Hive - part1
  10. F#注解