VC启动以及跳转方式介绍

启动

  • 从storyboard启动

    //获取箭头指向的VC
    UIViewController *VC;= [UIStoryboard storyboardWithName:@"Main" bundle:nil].instantiateInitialViewController;
    // 获取故事板中某个VC
    UIStoryboard *board = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *VC = [board instantiateViewControllerWithIdentifier:@"Second"];
    
  • 配合XIB启动
    MainViewController *MainVC= [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:[NSBundle mainBundle]];

  • 直接启动
    MessageSystemViewController *msVC = [[MessageSystemViewController alloc]init];

跳转方式

//1导航控制器下,使用PUSH方式
[self.navigationController pushViewController:VC animated:YES];
[self.navigationController popViewControllerAnimated:YES];

//2非导航控制器子类下,唯有MODLE形式的底部飞出页面
[self presentViewController:VC animated:YES completion:nil];
[self dismissViewControllerAnimated:YES completion:nil];
* PS:presentModalViewController 和presentViewController是一样的效果,都是弹出模态视图。 只不过presentModalViewController被弃用了。
pushViewController 就是uinavigationcontroller推到一个新      viewController啊。相反的操作是pop系列的api,是返回上层界面。

//3使用storyboard的segues方式,跳转前会调用
//-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
// [self performSegueWithIdentifier:@"" sender:nil];手动触发跳转。注意这个ID是segues的ID号,自己在线上设置的。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//目标VC的获取,可以进行相关参数属性的设置传递。
     id vc = segue.destinationViewController;
}

//4选项卡UITabBarController控制器
UITabBarController *tabbarVC = [[ UITabBarController alloc ] init ];  
ViewController *first= [[ViewController alloc] init ];
first.tabBarItem.title = @"控制器1 " ;
first.tabBarItem.image = [ UIImage imageNamed : @"first.png" ];
ViewController *second = [[ViewController alloc] init ];
second.tabBarItem.title = @"控制器2 " ;
second.tabBarItem.image = [ UIImage imageNamed : @"second.png" ];
// 添加子控制器(子控制器会自动添加到UITabBarController的 viewControllers 数组中)
[tabbarVC addChildViewController:first];
[tabbarVC addChildViewController:second];

//5 将VC直接添加到window的rootVC中。。简单粗暴,有时候有问题。
self.window.rootViewController = vc;

你可能感兴趣的:(VC启动以及跳转方式介绍)