UINavigationController的使用

Posted on 2016-06-27 18:27  柠檬片  阅读(68)  评论(0)    收藏  举报

/**

 UINavigationController基本使用

    > 帮助我们管理控制器的跳转操作

 

    > 1.实例化导航控制器

    > 2.管理多控制器

        > push 将其他的控制器显示出来

        > pop  弹出,将正在显示的控制器移除出

    > 3.通常使用导航控制器

        > 创建导航控制器的时候就指定一个根控制器

        > 在根控制器内执行一些操作的时候,才进行跳转

 */

 

  //.导航控制器并设置为窗口的根控制器

    // 创建导航控制器的根控制器

    CZRedController *redVc = [[CZRedController alloc] init];

        // 创建导航控制器的同时指定它的根控制器

    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:redVc];

    nav.view.backgroundColor = [UIColor orangeColor];

 

//移除当前显示的控制器

[self.navigationController popViewControllerAnimated:YES];

 

//返回到根控制器

  [self.navigationController popToRootViewControllerAnimated:YES];

 

//跳转到下一个显示的控制器

  // 1.创建蓝色控制器

    CZBlueController *blueVc = [[CZBlueController alloc] init];

    // 2.获取当前控制器的导航控制器执行跳转

    [self.navigationController pushViewController:blueVc animated:YES];

 

//返回到指定的控制器

//self.navigationController.viewControllers; 保存的是当前导航控制器栈内的所有控制器

 UIViewController *vc = self.navigationController.viewControllers[1];

 [self.navigationController popToViewController:vc animated:YES];

 

//根据identifier执行指定的segue去跳转控制器,sender为跳转时可传过去的参数

 [self performSegueWithIdentifier:@"login2contact" sender:@"123"];

 

//在执行控制器跳转前做的准备

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

//获取源控制器    segue.sourceViewController

 //通过segue获取目标控制器

   UIViewController * targetVC = segue.destinationViewController;

    //给目标控制器的属性赋值

//    targetVC.navigationItem.title

//    targetVC.navigationItem.titleView

    targetVC.title = [NSString stringWithFormat:@"%@的联系人",self.userNameField.text];

}