UINavigationController
简介
该类实现了一个导航控制器,它使用导航堆栈管理当前显示的屏幕内容。导航堆栈是一个视图控制器数组,数组中的第一个视图控制器是根视图控制器,数组中的最后一个视图控制器是当前显示的视图控制器。
状态保持
从iOS6开始,如果你设置了导航控制器的restorationIdentifier
属性值,导航控制器会试着在导航堆栈上保持每个子视图控制器。它会对拥有一个有效恢复标识符串的视图控制器进行编码,在下一个启动周期,导航控制器会按照在导航堆栈中的保持顺序来恢复被保持的视图控制器。
推送到导航堆栈中的子视图控制器会使用相同的恢复标识符,导航控制器会自动存储额外的信息来确保每个子视图控制器的恢复路径是唯一的。
注意
- 从iOS7开始,用户可以通过轻扫屏幕左侧来弹出最顶层视图控制器。
- 当前一个视图控制器提供了返回按钮时,如果设置的返回按钮标题过长,为了适应可用空间,实际的标题会被替换为”返回”。
- 只要在使用了
UINavigationController
且navigationBar
没有被隐藏的条件下,它的rootController
及之后push的controller的preferredStatusBarStyle
方法不会被调用。原因是UINavigationController
会根据自己navigationBar
的barStyle
来决定 StatusBarStyle。