UI_UINavigationController
创建 UINavigationController(导航控制器)
在AppDelegate.m中创建
// 创建一个普通控制器
RootViewController *rootVC = [[RootViewController alloc] init];
// UINavigationController主要用来管理一组控制器(至少有一个),自带 view 可是不使用
UINavigationController *rootNC = [[UINavigationController alloc] initWithRootViewController:rootVC];
// 加入 控件时 是否计算导航条的宽度 默认 YES
rootNC.navigationBar.translucent = NO;
// 改变导航条的字体颜色
rootNC.navigationBar.tintColor = [UIColor blueColor];
// 改变导航条总体颜色
rootNC.navigationBar.barTintColor = [UIColor brownColor];
// 改变导航条标题颜色
rootNC.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor redColor]};
// 给整个导航条加上背景图片
[rootNC.navigationBar setBackgroundImage:[UIImage imageNamed:@"2.png"] forBarMetrics:UIBarMetricsDefault];
self.window.rootViewController = rootNC;
[rootVC release];
[rootNC release];
入栈和出栈
在 view 中设置 button 属性,并创建 button
入栈要引入后一个页面的控制器(controller)
@property (nonatomic, retain)UIButton *button;
在 controller 中绑定并实现点击事件
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"首页";
// 绑定点击事件
[self.rootView.button addTarget:self action:@selector(buttonDidClicked:) forControlEvents:UIControlEventTouchUpInside];
}
#pragma mark - button 点击事件
- (void)buttonDidClicked:(UIButton *)sender
{
ScendViewController *secondVC = [[ScendViewController alloc] init];
// 压栈处理 进入下一个页面
[self.navigationController pushViewController:secondVC animated:YES];
}
出栈
#pragma mark - 实现点击事件 出栈
- (void)buttonDidClicked:(UIButton *)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
指定页面跳转
#pragma mark - 通用方法 pop到指定控制器
- (void)button2DidClicked:(UIButton *)sender
{
// pop 到指定控制器
// [self.navigationController popToViewController:self.navigationController.viewControllers[0] animated:YES];
NSArray *array = self.navigationController.viewControllers;
RootViewController *root = nil;
for (id VC in array) {
if ([VC isKindOfClass:[RootViewController class]]) {
root = VC;
break;
}
}
if (root != nil) {
[self.navigationController popToViewController:root animated:YES];
}
}
跳转到根视图控制器
- (void)buttonDidClicked:(UIButton *)sender
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
自己定义返回按钮
- (void)viewDidLoad {
[super viewDidLoad];
// 定义一个返回按钮
// left and right 都能够
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"我的返回" style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonItemAction:)];
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"1.png"] style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonItemAction:)];
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:self action:@selector(leftButtonItemAction:)];
// 让系统左(右)边按钮换掉
self.navigationItem.leftBarButtonItem = leftButtonItem;
}
#pragma mark - 导航栏左边按钮的点击方法
- (void)leftButtonItemAction:(UIBarButtonItem *)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
UI_UINavigationController的更多相关文章
随机推荐
- Appium + python -小程序实例
from appium import webdriverfrom appium.webdriver.common.touch_action import TouchActionfrom time im ...
- idea常用快捷键(转)
---恢复内容开始--- IntelliJ Idea 常用快捷键列表 Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+S ...
- IO流遍历文件夹下所有文件问题
import java.io.File; /** * @author 王恒 * @datetime 2017年4月20日 下午2:24:32 * @description 递归调用 * */ publ ...
- 最近积累的JS 东西,分享一下
js 关闭页面 var browserName=navigator.appName; if (browserName=="Netscape") { window.open('',' ...
- 【Oracle】服务器端监听配置
一.静态监听 创建端口为1521的监听,静态注册,本机ip:192.168.10.2 [oracle@localhost ~]$ vi /u01/app/oracle/product/11.2.0/d ...
- Java_Web之宠物管理系统
使用JSP+servLet实现宠物管理系统,oraC1e11g作为后台数据厍,实现查看宠物和增加宠物的功能由你实现,如图: 其中宠物包栝:狗.猫.鸟.鼠 具体要求及推荐实现步骤 第一步:创建数据库代码 ...
- 2013款MacBook Air装Windows7单系统
经过两天的摸索,查找无数资料终于把2013款的MacBook Air装上了WIN 7,虽然网上有很多的资料但是都不是我想要的,第一个我的是2013款的MacBook Air,跟原来2012 11款Ma ...
- dubbo之本地存根
本地存根 远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想在客户端也执行部分逻辑,比如:做 ThreadLocal 缓存,提前验证参数,调用失败后伪造容错数据等等,此时就需要在 ...
- dubbo之服务分组
当一个接口有多种实现时,可以用group区分. 服务 <dubbo:service group="feedback" interface="com.xxx.Inde ...
- (转)基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
http://www.cnblogs.com/wuhuacong/p/5147368.html 在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这 ...