UINavigationController的使用介绍

1.UINavigationCotroller

  1> UINavigationContoller是存储在栈区的.

  2> 栈区的执顺序是先进后出.

  3>UINavigationController的把没一个子控制器都压入到栈去,然后通过方法弹出最上面的控制器.

  3> 通过pust的方法跳到下一个控制器.

  4> 通过pop方法可以返回上一个控制器

 

 

2.创建一个UINavigationController 

 

  //2.创建控制器
       UINavigationController *nav = [[UINavigationController alloc]init];

  //2.1把第一个控制器压入到栈中
         HMOneViewController *oneVc = [[HMOneViewController alloc]init];
         [nav pushViewController:oneVc animated:YES];

  //2.2设置window根控制器
         self.window.rootViewController = nav;
     
  //2.3让window成为主要的window并且可见
         [self.window makeKeyAndVisible]; 

 

 

 

3.通过按钮切换控制器

 

  //按钮点击事件
    - (void)buttonDidClick {
    
        //创建一个第二个控制器
        HMTwoViewController *twoVc = [[HMTwoViewController alloc]init];

        //把第二个控制器压入到栈中
        [self.navigationController pushViewController:twoVc animated:YES];
     
    }       

 

 

4.通过代码设置UINavigationController的导航

 

  //4.1设置控制器的标题
      self.navigtionItem.title = @"红色控制器";

  //4.1.1上面代码可以简写
      self.titlr = @"红色控制器";

  //4.1.2 设置自定一的标题
      self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MainTitle"]]

  //4.2设置导航栏的颜色,要获取NavigationBar的外观来设置
      [[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];

  //4.3设置NavigationBar的title的颜色
      [[UINavigationBar appearance]setTitleTextAttributes:@{
                                      NSForegroundColorAttributeName:[UIColor whiteColor]
                                      }];

  //4.4设置left按钮right按钮
  //4.4.1创建一个自定义的按钮
      self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button]

  //4.4.2创建一个文字按钮
      self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"下一个控制器" style:UIBarButtonItemStylePlain target:nil action:nil];

  //4.4.3UIBarButtonItme的系统提供的类型创建方式
      UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:<按钮的类型> target:<执行谁的方法> action:<执行的方法>]

  //4.5设置返回按钮,传一个自定义的按钮,系统会自动帮我们添加"<"
      self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

 

 

 

5.通过storyboard创建控制器

 

  

  1>设置UINavigationController的根控制器

    

 

  2>通过按钮切换控制器,iOS8之前用pushmodal. iOS8以后用showpresent Modally.

    2.1.show动画是从右面过来

    2.2.present Modally动画是从下面过来

    2.3.Custom是自定义的跳转,以后会讲到.

    

 

  3>如果出栈,不能使用脱线方式实现,必须使用代码,Storyboard中线是不能交叉的

    

  //如果出栈,不能使用脱线方式实现,必须使用代码,Storyboard中线是不能交叉的
  //让控制器出栈,返回到上一个控制器
      [self.navigationController popViewControllerAnimated:YES];
    
  //让控制器出栈,返回到跟控制器上
      [self.navigationController popToRootViewControllerAnimated:YES];
    
  //让控制器出栈,返回到指定控制器上
      [self.navigationController popToViewController:控制器名字 animated:YES];
    
  //让控制器出栈,弹出栈顶的控制器
     [self.navigationController popoverPresentationController];  

 

 

 

6.视图发生变化的时候调用的方法

 

    //当视图将要显示的时候就会调用
      - (void)viewWillAppear:(BOOL)animated
    
    //当视图显示完成的时候就会调用
      - (void)viewDidAppear:(BOOL)animated
    
    //当时图将要消失的时候调用
      - (void)viewWillDisappear:(BOOL)animated
    
    //当时图消失完毕后调用
      - (void)viewDidDisappear:(BOOL)animated
    
    //当视图加载完成调用
     - (void)viewDidLoad

 

转载于:https://www.cnblogs.com/heitaoA/p/5313893.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值