导航控制器UINavigationController

导航控制器 是基于栈来实现的 它会自动帮我们记录 咱们所需要切换的界面
咱们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];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ldl_csdn_ios

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值