iOS学习笔记(十)————顶部导航控制器

/ 0评 / 0

我们看到大部分的APP顶部都有一个半透明的条状控件,这就是导航栏,导航控件展示出来虽然就这么多,其实导航控件相当于一个容器,盛放着一些顺序排列的视图,按顺序调用,相当于是个视图栈。

我们首先要将导航控制器初始化,初始化的时候将要展示的第一个视图设置为导航控制器的根视图,然后再将导航控制器设置成APP的根视图控制器。

    ViewController *view = [[ViewController alloc] init];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:view];
    self.window.rootViewController = nav;

在要展示的视图中我们可以设置导航控制器在这个页面的展示信息,当我们想过度到下个页面的时候就用 push 的方法,因为导航控制器不是像栈吗,那就压栈呀

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor greenColor];
    
    //设置导航栏标题
    self.title = @"第一页";
    
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(20, 64, 280, 50)];
    [button setTitle:@"到下个页面去" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    
}

- (void)btnClick{
    
    DCViewController *dcVC = [[DCViewController alloc] init];
    [self.navigationController pushViewController:dcVC animated:YES];
    
}

在第二个页面同样可以设置信息,但是我们要想回到上个页面怎么办?过来压栈,出去当然是出栈了。这里我们设置了导航控制器左侧操作按钮,是啊,这是可以设置的呀!!!

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor redColor];
    
    //设置导航栏标题
    self.title = @"第二页";
    
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(20, 64, 280, 50)];
    [button setTitle:@"到上个页面去" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    
    
    //设置导航栏上的操作按钮
    
    UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(btnClick)];
    self.navigationItem.leftBarButtonItem = leftButton;
    
}

- (void)btnClick{
    
    [self.navigationController popViewControllerAnimated:YES];
    
}

顶部导航控制器就是这样用的~

navTest

代码请查看 http://git.oschina.net/zcb1603999/LearningiOS

评论已关闭。