导航控制器
- 多控制器的跳转
导航控制器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了