一、基本概念
> UINavigationController(导航控制器)继承于视图控制器,通过栈的方式来管理视图控制器,视图控制器之间通过入栈、出栈操作进行切换。
> UINavigationController(导航控制器)用于处理复杂的分层数据。
> UINavigationController(导航控制器)维护一个根视图控制器栈,任何类型的视图控制器都可以放到导航控制器的栈中。
二、初始化方法
- (id) initWithRootViewController:(UIViewController *)rootViewController;
// 初始化时,传递一个视图控制器的参数,作为导航控制器的根视图控制器,导航控制器实例加载完成后,根视图控制器的视图会被添加到导航控制器中。注意,导航控制器只有一个根视图控制器!
三、导航控制器的视图控制器的入栈出栈方法
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
工程示例:
1、首先创建一个名为nivagationControllerCode的Empty Application工程文件。然后创建两个视图控制器类。接下来在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法中添加代码,如图示:
2、在主视图控制器中添加一个按钮,用来触发视图控制器入栈的动作方法,代码如下图所示:
3、在子视图控制器中添加一个按钮,用于触发子视图控制器出栈的动作方法,代码如下图所示: