代码和storyboard混合使用实现视图切换方法

视图切换一般有三种方法:UINavigationController,UITabbarController,模态窗口。
一、在一个storyboard中存在多个ViewController想实现他们之间的切换可以使用segue或者代码实现切换。使用segue切换就不能在实现切换过程处理一些方法。若用代码如何实现呢?
1、首先给你需要跳转到的视图设置storyboard ID.

1

2、然后根据Identity和presentViewController方法实现实例化一个视图并以模态对方式显示。

//这里实现的是modal切换
GetDataByPropertyViewController *getDataByPropertyViewController = 
(GetDataByPropertyViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"getDataByPropertyViewController"];
getDataByPropertyViewController.data = _userName.text;//通过属性传递值

[self presentViewController:getDataByPropertyViewController animated:YES completion:nil];

二、在多个storyboard中存在多个ViewController。使用多个storyboard是为了方便管理不同视图防止在一个storyboard中存在过多的视图而导致混乱。
1、首先也是给storyboard设置storyboard ID.
2、这时需要创建并实例化一个storyboard。

// 通过多个storyboard来管理不同视图控制器可以避免放在一个storyboard中导致凌乱感觉。
//1.根据storyboard名字创建storyboard
UIStoryboard *s = [UIStoryboard storyboardWithName:@"second" bundle:nil];
//2.实例化s中的视图控制器。
UIViewController *vc = [s instantiateViewControllerWithIdentifier:@"second"];
[self.navigationController pushViewController:vc animated:true];

三、纯代码实现视图之间modal切换
直接创建并实例化视图后调用presentViewController方法即可。

GetDataByPropertyViewController *getDataByPropertyViewController = [[GetDataByPropertyViewController alloc]init];

getDataByPropertyViewController.data = _userName.text;//传递值
[self presentViewController:getDataByPropertyViewController animated:YES completion:nil];

推荐阅读更多精彩内容