UINavigationController的简单使用

network | | 访问(36)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    
    [self createNavigation];
    
    [self.window makeKeyAndVisible];
    return YES;
}

// 创建导航控制器
-(void)createNavigation{

    // 1.创建一个导航控制器
    UINavigationController *navVc = [[UINavigationController alloc] init];
    
    // 2.设置导航控制器的子控制器
    UIViewController *oneVc = [[UIViewController alloc] init];
    oneVc.view.backgroundColor  = [UIColor grayColor];
    
    UIViewController *twoVc = [[UIViewController alloc] init];
    twoVc.view.backgroundColor = [UIColor purpleColor];
    
    // 方法 1: 添加导航控制器的子控制器
    // [navVc pushViewController:oneVc animated:YES];
    // [navVc pushViewController:twoVc animated:YES];
    
    // 方法 2: 添加导航控制器的子控制器
    navVc.viewControllers = @[oneVc,twoVc];
    
    // 方法 3: 添加导航控制器的子控制器
    // [navVc addChildViewController:oneVc];
    // [navVc addChildViewController:twoVc];
    // 特别注意,一次性添加多个控制器,程序启动时,只会展示一个,则是最后添加的那个
    // 所以,我们一般都是先添加一个控制器,那就是首页控制器,当需要跳转到第二个控制器的时候,再将其加入到导航控制器
    self.window.rootViewController = navVc;

}

// 跳到第二个控制器
- (IBAction)jumpTwoVc:(id)sender {
    TwoViewController *twoVc = [[TwoViewController alloc] init];
    [self.navigationController pushViewController:twoVc animated:YES];
}

// 返回
- (IBAction)backOneVc:(id)sender {
    [self.navigationController popViewControllerAnimated:YES];
}

// 返回
- (IBAction)backOneVc:(id)sender {
    // 返回第一个控制器
    // [self.navigationController popToRootViewControllerAnimated:YES];
    // 获取第一个控制器
    UIViewController *oneVC = self.navigationController.viewControllers[0];
    // 返回指定控制器
    [self.navigationController popToViewController:oneVC animated:YES];
}