ios 导航页面
// AppDelegate.m
#import "AppDelegate.h"
#import "ViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
CGRect rect = [UIScreen mainScreen].bounds; //屏幕的大小
UIWindow *w = [[UIWindow alloc]initWithFrame:rect];//新建一个页面 并且让新建的页面充满整个显示屏
w.backgroundColor = [UIColor redColor]; //把新建的页面的颜色设为红色
[w makeKeyAndVisible];//把设置的效果显示在页面上
self.window = w;//使得开始设置的不要马上系统给销毁
ViewController *v = [[ViewController alloc]init];//新建另一个页面
UINavigationController *nav =[[UINavigationController alloc]initWithRootViewController:v];//初始画导航页面 并建立
UIImage *image = [UIImage imageNamed:@"a"];//将要使用的图片赋值 并创建
[nav.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];//将图片添加到导航页面中
nav.view.backgroundColor = [UIColor colorWithRed:0 green:1 blue:0 alpha:1];//给导航页面设置背景颜色 并用的是三元色来表示
v.view.backgroundColor = [UIColor orangeColor];//将页面的背景颜色设置为橘红色
self.window.rootViewController = nav;//把创建好的导航页面在第一个页面上显示
return YES;
}
// ViewController.m
#import "ViewController.h"
#import "SecondViewController.h"
@interface ViewController ()
@end
@implementation ViewController
//视图加载完成后自动调用
- (void)viewDidLoad {
[super viewDidLoad];
// self.title = @"AAA"; //第一种方法 在导航页面显示标签
self.navigationItem.title = @"AAA";//第二种方法 在导航页面显示标签
//1.
UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithTitle:@"Left" style:UIBarButtonItemStylePlain target:self action:@selector(didLeftClicked)];//
//2.
UIImage *img = [UIImage imageNamed:@"back"];//添加图片 并初始化
// UIBarButtonItem *leftItem2 = [[UIBarButtonItem alloc] initWithImage:img style:UIBarButtonItemStyleDone target:self action:@selector(didLeftClicked)];//
//3. 使用一个自定义的控件作为左边item
// UIImageView *imgView = [[UIImageView alloc] initWithImage:img];//
UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];//创建一个按钮
[leftBtn setImage:img forState:UIControlStateNormal];//将图片加载在按钮上
//只有大小有作用
leftBtn.frame = CGRectMake(0, 0, 40, 40);//按钮的位置大小
UIBarButtonItem *leftItem3 = [[UIBarButtonItem alloc] initWithCustomView:leftBtn];//
//设置导航条左/右侧按钮
self.navigationItem.rightBarButtonItems = @[leftItem3];//
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];//
self.navigationItem.titleView = imgView;//
//导航条分为3个部分
//0. self.navigationController.navigationBar
//1. self.navigationItem.leftBarButtonItem(s)
//2. self.navigationItem.rightBarButtonItem(s)
//3. self.navigationItem.title(View)
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];//创建一个按钮
//设置不同状态的标题
[btn setTitle:@"按钮" forState:UIControlStateNormal];//在常态的时候按钮显示为 “按钮”
[btn setTitle:@"高亮" forState:UIControlStateHighlighted];//在点击按钮时 按钮显示为“高亮”
// [btn setBackgroundColor:[UIColor redColor]];//第一种方法表示按钮的背景颜色为红色
btn.backgroundColor = [UIColor redColor];//第二种方法表示 按钮的背景颜色为红色
[btn addTarget:self action:@selector(didClicked) forControlEvents:UIControlEventTouchUpInside];//点击按钮将要执行的方法名还有执行的类型
btn.frame = CGRectMake(0, 64, 100, 100);//设置位置和大小
[self.view addSubview:btn];//显示按钮
}
- (void)didLeftClicked//按钮执行的方法
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void)didClicked//按钮执行的方法
{
NSLog(@"%s", __func__);
SecondViewController *viewCtrl = [[SecondViewController alloc] init];//
// viewCtrl.view.backgroundColor = [UIColor orangeColor];//
// [self presentViewController:viewCtrl animated:YES completion:nil];//NULL
[self.navigationController pushViewController:viewCtrl animated:YES];//
//所有被导航控制器管理的页面,都会拥有一个指针navigationController指向所在的导航控制器
NSLog(@"2: %p", self.navigationController);//
}
@end
#import "SecondViewController.h"
@interface SecondViewController ()
@end
@implementation SecondViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Second";//在第二个页面中的导航页面标题设置为这个
self.view.backgroundColor = [UIColor purpleColor];//设置页面的背景颜色
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];//设置一个按钮
[btn setTitle:@"第二个按钮" forState:UIControlStateNormal];//设置一个常规按钮 并命名为第二个按钮
[btn addTarget:self action:@selector(didClicked:) forControlEvents:UIControlEventTouchUpInside];//这个按钮将执行自己的didclicked方法
btn.frame = CGRectMake(100, 100, 200, 50);//设置按钮所在页面的位置
[self.view addSubview:btn];//把设置的按钮加载在页面上
NSLog(@"btn 1: %p", btn);
}
- (void)didClicked:(UIButton *)sender //按钮需要执行的方法
{
NSLog(@"%s", __func__);
NSLog(@"btn 2: %p", sender);
[self.navigationController popViewControllerAnimated:YES];//将要跳转到前一个页面
}
ios 导航页面的更多相关文章
- 关于ios导航控制器的知识总结
关于ios导航控制器的知识总结 添加了导航控制器后: 1.一个导航控制器会有一个顶部导航栏navigationbar和一个底部工具栏toolbar,它们是导航控制器navC的属性.且导航栏默认是不隐藏 ...
- 在uwp仿IOS的页面切换效果
有时候我们需要编写一些迎合IOS用户使用习惯的uwp应用,我在这里整理一下仿IOS页面切换效果的代码. 先分析IOS的页面切换.用户使用左右滑动方式进行前进和后退,播放类似于FlipView的切换动画 ...
- 阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性
使用说明:只要替换选择器:var selector = '.phone_body'; /** * 阻止iOS中页面弹性回滚,只允许div.scroller的区块有弹性 */ (function () ...
- 解决ios双击页面上移问题
做webapp时,ios有个默认双击事件,会缩放页面,并将当前点击的位置居中到屏幕,本来也没什么,但是当页面中有fixed定位的元素时,这时候你就会神奇的发现,fixed元素所见不所得了! 还有就是页 ...
- Visual Studio跨平台开发实战(3) - Xamarin iOS多页面应用程式开发
原文 Visual Studio跨平台开发实战(3) - Xamarin iOS多页面应用程式开发 前言 在前一篇教学中, 我们学会如何使用Visual Studio 搭配Xcode 进行iOS基本控 ...
- iOS 导航栏返回到指定页面的方法和理解
关于ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,比如我从主页面跳转到了一级页面,又从一 ...
- Ios导航栏返回到指定的页面
在自己的项目实现中有这样的一个需求.一般情况下我们的导航栏返回按钮,是上个页面跳转过来,点击返回按钮返回到上来界面.但是在实际需求中有的并不是这么简单的.有的界面返回是只确定的界面.所以当时自己在实现 ...
- ios 指定页面禁用第三方键盘,使用系统的键盘
因为项目需要,需要在添加银行卡和提现页面使用数字键盘, 如果用户没有安装第三方键盘是没啥大问题的,但是如果用户手机安装了第三方的键盘的话,有时候会无法调用起第三方的数字键盘,或者第三方键盘样式不符合, ...
- iOS导航栏背景,标题和返回按钮文字颜色
在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字Col ...
随机推荐
- 类加载class loader
Class装载验证流程: 加载:取得类的二进制流,转为方法区的数据结构,在java堆中生成对应的java.lang.class对象 链接:就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中 ...
- MVC中的Startup.Auth.cs、BundleConfig.cs、FilterConfig.cs和RouteConfig.cs
一.MVC中的Startup.Auth.cs.BundleConfig.cs.FilterConfig.cs和RouteConfig.cs四个文件在app_start中 <1>Bundle ...
- Xcode-App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.
在xcode中上报数据时候,logserver一直没有数据,后来发现控制台有一个提示: 找了半天是因为Xcode7禁止明码的HTTP请求,而自己使用的是Xcode7.2.1 解决办法:修改info.p ...
- html5 article标签举例
<article> 是html5中引入的新标签可以实现正向反向列表排序功能 使用以前的html4进行列表排序,可以使用下列形式 <h1>Top Three Teams</ ...
- 1.javaOOP_Part1_抽象和封装
javaOOP_Part1_抽象和封装 javaOOP_Part1_抽象和封装 1.1 面向对象 1.1.1 为什么使用面向对象 1.一切皆对象 2.现实世界就是"面向对象的" 3 ...
- 触动精灵远程Log模块
一.功能 lua log方法能够自动发现同一网段下面的log服务器 lua log方法能够主动将log发给服务器 lua 客户端进程重启服务端不存在影响 二.实现 服务器使用python编写: 启动一 ...
- OSG+Python
测试平台(1)Fedora19 x86 [cc@localhost ~]$ lspci | grep VGA :) :00.0 VGA compatible controller: NVIDIA Co ...
- 在线用户管理--ESFramework 4.0 进阶(05)
无论我们采用何种通信框架来构建我们的分布式系统,在服务端进行用户管理都是非常重要的一个环节.然而用户管理是否应该隶属于通信框架了?这个并不一定,通常来说,用户管理是与具体应用紧密相关的,应该是由应用解 ...
- 在windows上部署使用Redis(摘录)
下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包, ...
- poj2386
湖计数描述由于最近的降雨,水汇集在不同的地方,在农民约翰的领域,这是代表一个长方形的N×M(1μ= 100:1 = M = 100)平方.每一方都包含水(’w')或干燥的土地(“.”).农民约翰想弄清 ...