导航控制器

导航控制器

  • 多控制器的跳转

导航控制器view的结构

  • 导航条
    • y:20
    • H:44
  • 存放栈顶控制器的view

导航控制器的基本使用

  • 创建导航控制器
  • 设置窗口的根控制器为导航控制器
    • 子控件超出父控件的尺寸范围是可以显示的
  • 给导航控制器添加子控制器
    • push
    • initWithRootViewController:
  • 控制器的view默认的背景颜色为透明的颜色
  • 控制器之间的跳转(入栈)
    • 当当前控制器在导航控制器的栈里面的时候,就有navigationController属性
    • 创建新的控制器
    • pushViewController:animated:
    • 新的控制器入栈,把之前的栈顶控制器的view移除,把当前的栈顶控制器的view添加上去
  • 查看当前导航控制器的子控制器
    • .childViewControllers
  • 控制器之间的跳转(出栈)
    • 返回上一级
      • 系统自带的back,帮我们做了一个pop操作
      • popViewController:animated:
      • 把当前的控制器从栈中移除
    • 返回到根控制器
      • 把除了根控制器以外的控制器,全部从栈中移除
      • popToRootViewControllerAnimated:YES
    • 返回到指定的控制器
      • popToViewController:
      • 要返回的控制器必须要在导航控制器的子控制器当中
  • 设置导航条的内容

    • 导航条的内容,他是由栈顶控制器的模型来决定的(navigationItem),显示在眼前的控制器就是栈顶控制器
  • 设置导航条标题

    • self.navigationItem.title= @"";设置导航条的标题
    • 设置标题简写:self.title = @""
  • 设置导航条的标题视图

    • self.navigationItem.titleView
    • UISegmentedControl
  • 改第二个控制器导航条左边的样式

    • 到第二个控制器中去修改导航条左侧的内容
    • self.navigationItem.leftBarButtonItem = [UIBarButtonItem alloc]initWithTitle:style:target:action:
    • 自定义左侧返回按钮,就不会有拖动返回的效果了
  • 设置导航条右侧为图片

    • initWithImage:style:target:action:
    • 更改导航条的渲染颜色
      • 拿到导航条
      • self.navigationController.navigationBar.tintColor = [UIColor orangeColor]
      • 不想渲染,使用原来的颜色
      • 找到图片,render as - original
    • 点击按钮成为高亮状态
      • initWithCustomView:
      • 设置右侧为一个自定义的view
      • 设置frame :sizeToFit
      • 监听事件

通过storyboard跳转控制器

  • navigationController窗口的根控制器
  • 设置导航控制器的根控制器
  • rootViewController
  • push/show
    • show和push在手机开发中效果一样,在iPad中有区别,show底层还是调用push
    • iPad分屏效果(show/showdetail)
  • 导航条内容设置,标题双击(push才适用,show的时候,双击就不好使了)
  • 左右侧 item
  • show不会生成navigationItem了

你可能感兴趣的:(导航控制器)