启动
-
从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;