UINavigationController与UITabBarController相关问题
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
UINavigationController与UITabBarController相关问题的更多相关文章
- UIViewController、UINavigationController与UITabBarController的整合使用
UINavigationController与UITabBarController是iOS开发中最常用的两种视图控制器,它们都属于UIViewController的子类,继承关系如下: @interf ...
- iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController) 前面我们介绍了StoryBoard这个新技术,和纯技术 ...
- iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleV ...
- iOS开发——实战OC篇&环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)
环境搭建之StoryBoard(玩转UINavigationController与UITabBarController) 研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自 ...
- UINavigationController和UITabBarController
UINavigationController和UITabBarController 目录 概述 UINavigationController UITabBarController 实用功能 待解决 概 ...
- UINavigationController与UITabbarController的样式
之前虽然也手写过这两中视图控制器,但是更多的还是使用SB来创建,最近发现了一些问题,现在总结一下. 1.改变UINavigationBar的颜色 在UINavigationController中,之前 ...
- UINavigationController 与 UITabBarController
http://www.cnblogs.com/YouXianMing/p/3756904.html // index start from 1. UITabBarItem *newsItem = [[ ...
- UINavigationController 和 UITabBarController
UINavigationController当设置根控制器的时候,意思就是把根控制器压入栈内,当我们push的时候,我们把下一个控制器压入栈内,当我们pop的时候把上面的控制器的内存释放 UITa ...
- UINavigationController和UITabBarController合用
一.创建一个 Tabbed Application.默认创建的是带有两个Tab的工程. 二.在AppDelegate.h里面添加 @property (strong, nonatomic) UINav ...
随机推荐
- Sklearn-RandomForest
在scikit-learn中,RandomForest的分类类是RandomForestClassifier,回归类是RandomForestRegressor,需要调参的参数包括两部分,第一部分是B ...
- springboot 常用插件
热部署 使用run as -java application, 把spring-loader-1.2.4.RELEASE.jar下载下来,放到项目的lib目录中,然后把IDEA的run参数里VM参数设 ...
- 代码查看php是否已开启rewrite功能模块
通过php代码来查询,是否把rewrite模块打开了 <?php $result = apache_get_modules(); if(in_array('mod_rewrite', $resu ...
- Eclipse svn 中文转成英文
- NFS文件共享服务搭建
一.概述 NFS工作流程 1.由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求. 2.NFS服务端的R ...
- 下拉框多选实现回显及sql
<td class="tabTd"><label>客户来源:</label></td> <td><select c ...
- drawRect:和layoutSubview的区别
关于这两个方法的区别 还是有点意思的. UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.setNeedsDisplay会调用自动调用draw ...
- IT农民的开发人员工具清单(2013年)
IT行业日新月异,每天都不断变化着.作为一名混迹IT行业小有几个年头码农来说,不仅要时刻提高自身技术,也要不断更新自己开发工具.这些工具都是我吃饭的饭碗.饭碗旧了也是需要买个新的.转眼之间,已到201 ...
- Java基础教程(15)--枚举类型
枚举类型定义了一个枚举值的列表,每个值是一个标识符.例如,下面的语句声明了一个枚举类型,用来表示星期的可能情况: public enum Day { SUNDAY, MONDAY, TUESDAY ...
- JDK安装与环境变量全过程-鹏鹏
首先先讲下JDK的含义以及用处: JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Jav ...