大家先看看导航控制器的效果图
当我们在首页点击下一页的时候,视图跳转到登陆页面,点击cancel会返回上一个页面,点击下一页跳转到下一个页面注册。在注册页面点击返回首页可以返回首页,注册页面中,导航控制器上左右两边可以自己设置 UIBarButtonItem
1、初始化导航控制器 设置导航控制器的第一个页面
ViewController *viewController = [[ViewController alloc]init];
UINavigationController *nv = [[UINavigationController alloc]initWithRootViewController:viewController];
self.window.rootViewController = nv;
2、 MVC :
Model(模型 数据 或者 逻辑运算 操作) - View(视图) - Controller(视图控制器)
所有的 iOS 应用程序基本都使用 Model- View - Controller,或称MVC框架。从结构角度来看,Model,View,Controller 是一个ios应用程序的3各主要组件。
3、self.title = @“首页”;//设置导航栏的标题
4、 通过导航控制器 跳到下一个页面
[self.navigationController pushViewController:two animated:YES];
5、如果跳到的这个页面没有设置背景颜色,就会出现 push卡顿的现象
self.view.backgroundColor = [UIColor brownColor];
6、 控制栏上的按钮
UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(back)];
7、设置UIBarButtonItem的颜色
left.tintColor = [UIColor whiteColor];
8、返回上一个页面
[self.navigationController popViewControllerAnimated:YES]
9、viewControllers 记录了 所有push压栈过得viewController
10、 在不想返回上一个页面 也不想返回首页的时候
[self.navigationController popToViewController:self.navigationController.viewControllers [1] animated:YES];
<span style="font-size:14px;"> self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor grayColor];
ViewController *viewController = [[ViewController alloc]init];
// 初始化导航控制器 设置导航控制器的第一个页面
UINavigationController *nv = [[UINavigationController alloc]initWithRootViewController:viewController];
self.window.rootViewController = nv;
[self.window makeKeyAndVisible];</span>
首页中
self.view.backgroundColor = [UIColor grayColor];
self.title = @"首页";//设置导航栏的标题
UIButton *pushButton = [UIButton buttonWithType:UIButtonTypeCustom];
pushButton.frame = CGRectMake(300, 600, 70, 30);
[pushButton setTitle:@"下一页" forState:UIControlStateNormal];
[pushButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
[pushButton addTarget:self action:@selector(next) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pushButton];
}
- (void)next
{
TwoViewController *two = [[TwoViewController alloc]init];
// 通过导航控制器 跳到下一个页面
[self.navigationController pushViewController:two animated:YES];
}
登陆中
// 如果跳到的这个页面没有设置背景颜色,就会出现 push卡顿的现象
self.view.backgroundColor = [UIColor brownColor];
self.title = @"登陆";//设置导航栏的标题
// 控制栏上的按钮
UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(back)];
// 设置UIBarButtonItem的颜色
left.tintColor = [UIColor whiteColor];
// 设置导航栏上面的内容
// 设置内容里面左侧按钮的选项的属性
self.navigationItem.leftBarButtonItem = left;
UIButton *pushButton = [UIButton buttonWithType:UIButtonTypeCustom];
pushButton.frame = CGRectMake(300, 600, 70, 30);
[pushButton setTitle:@"下一页" forState:UIControlStateNormal];
[pushButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
[pushButton addTarget:self action:@selector(next) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pushButton];
}
- (void)next
{
JoinViewController *join = [[JoinViewController alloc]init];
[self.navigationController pushViewController:join animated:YES];
}
- (void)back
{
[self.navigationController popViewControllerAnimated:YES];
}
注册中
self.view.backgroundColor = [UIColor lightGrayColor];
self.title = @"注册";
UIBarButtonItem *back = [[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backHome)];
back.tintColor = [UIColor grayColor];
self.navigationItem.leftBarButtonItem = back;
UIButton *right = [UIButton buttonWithType:UIButtonTypeCustom];
right.backgroundColor = [UIColor redColor];
right.frame = CGRectMake(CGRectGetWidth(self.view.frame)-50-10, 0, 50, 40);
[right setBackgroundImage:[UIImage imageNamed:@"21133735282"] forState:UIControlStateNormal];
UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithCustomView:right];
self.navigationItem.rightBarButtonItem = item;
UIButton *pushButton = [UIButton buttonWithType:UIButtonTypeCustom];
pushButton.frame = CGRectMake(300, 600, 70, 30);
[pushButton setTitle:@"返回首页" forState:UIControlStateNormal];
[pushButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
[pushButton addTarget:self action:@selector(backHome) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pushButton];
}
- (void)backHome
{
// 在不想返回上一个页面 也不想返回首页的时候
[self.navigationController popToViewController:self.navigationController.viewControllers [1] animated:YES];
}