导航控制器UINavigationController
2015-09-11 21:34
495 查看
导航控制器 是基于栈来实现的 它会自动帮我们记录 咱们所需要切换的界面
咱们push(进入下一个页面)的时候 系统会自动 向栈中添加对象
1、首先得初始化一个窗口
1.1初始化一个视图控制器作为导航控制器的根视图
1.2初始化导航控制器 设置导航控制器的第一个页面(把导航控制器作为窗口的根视图控制器)
在ViewController里面
设值背景颜色(如果不设置背景颜色,进入这个页面的时候会卡顿)
设置导航栏(这一页面的标题)
设置一个按钮,使他点击跳进下一个页面
跳转下一个面的方法
设置第二个ViewController,
如果跳进这一个界面出现卡顿,那么就要设置一下背景颜色(如果跳到这个界面 没有设置背景颜色,就会出现卡顿)
在导航栏中,系统自带有返回按钮,但是可以自己改写返回按钮
控制栏上的按钮
返回上一页的方法
返回某一页的方法
viewControllers 记录了 所有push压栈过的viewcontroller
在想返回一个页面 也不想返回首页
返回主页的方法
咱们push(进入下一个页面)的时候 系统会自动 向栈中添加对象
1、首先得初始化一个窗口
self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
1.1初始化一个视图控制器作为导航控制器的根视图
ViewController *viewController=[[ViewController alloc]init];
1.2初始化导航控制器 设置导航控制器的第一个页面(把导航控制器作为窗口的根视图控制器)
UINavigationController *nv = [[UINavigationController alloc]initWithRootViewController:viewController]; self.window.rootViewController=nv; [self.window makeKeyAndVisible];
在ViewController里面
设值背景颜色(如果不设置背景颜色,进入这个页面的时候会卡顿)
self.view.backgroundColor = [UIColor grayColor];
设置导航栏(这一页面的标题)
self.title = @"首页";
设置一个按钮,使他点击跳进下一个页面
UIButton *buttonPush = [UIButton buttonWithType:UIButtonTypeCustom]; buttonPush.frame = CGRectMake(100, 200, 100, 40); [buttonPush setTitle:@"进入下一页面" forState:UIControlStateNormal]; [buttonPush addTarget:self action:@selector(next) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:buttonPush];
跳转下一个面的方法
- (void)next { TWOViewController *two = [[TWOViewController alloc]init]; //通过导航控制器navigationController跳到下一个页面pushViewController这个是下一页面是: [self.navigationController pushViewController:two animated:YES]; }
设置第二个ViewController,
如果跳进这一个界面出现卡顿,那么就要设置一下背景颜色(如果跳到这个界面 没有设置背景颜色,就会出现卡顿)
在导航栏中,系统自带有返回按钮,但是可以自己改写返回按钮
控制栏上的按钮
UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithBarButtonSystemItem: UIBarButtonSystemItemCancel target:self action:@selector(back)]; //设置BarButtonItem的颜色 left.tintColor = [UIColor grayColor]; //设置导航栏上的内容 //设置内容里面 左侧按钮的属性 self.navigationItem.leftBarButtonItem = left;
返回上一页的方法
- (void)back { [self.navigationController popViewControllerAnimated:YES]; }
返回某一页的方法
viewControllers 记录了 所有push压栈过的viewcontroller
在想返回一个页面 也不想返回首页
[self.navigationController popToViewController: self.navigationController.viewControllers[1] animated:YES];
返回主页的方法
[self.navigationController popToRootViewControllerAnimated:YES];
相关文章推荐
- AJAX POST请求中参数以form data和request payload形式在php中的获取方式
- LeetCode(63)Unique Paths II
- LeetCode(63)Unique Paths II
- UI界面编写(仿QQ聊天界面)
- MySQL JDBC的queryTimeout坑
- LeetCode(62)Unique Paths
- LeetCode(62)Unique Paths
- iOS8下UILabel如何自适应高度(自动换行)
- IOS视图之UI基础
- TrueCrypt加密之后的取证方法(广东公安科技)
- UISlider
- UISegmetControl
- Machine Intelligence(Nature Insight 2015.5.28/Vol 521/Issue No 7553)
- IOS_UI_数据库
- UI:这段时间的小总结
- iOS开发之 UIAlertView 沙盒 归档
- iOS开发之 UITextField
- Storyboard中segue使用总结
- UE4ShaderPluginDemo
- UITableView Cell上添加按钮后改变选择状态