一、纯代码界面跳转方式
1.导航控制器(UINavigationController)
[self.navigationController pushViewController:NewVC animated:YES];//跳转到下一界面
[self.navigationController popViewControllerAnimated:YES];//返回上一界面
2.使用模态弹出的方式(UIViewController)
[self presentViewController:NewVC animated:YES completion:nil];//present到下一界面
[self dismissViewControllerAnimated:YES completion:nil];//推出
3.StroryBoard的连线跳转代码实现,首先在storyBoard上创建两个视图,中间用线连接,选中中间的线段设置线的Identifider
[self performSegueWithIdentifier:@"NewVC" sender:nil];
//传值方式
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
//通过segue判断要跳转到哪个页面
if ([segue.identifier isEqualToString:@"NewVC"]) {
XXXController * destinaVC = segue.destinationViewController;
}
}
跳转到目标视图之后返回根据UINavigationController和UIViewController判断,可以根据情况自定返回方式
二、StoryBoard界面跳转
1.storyboard生成ViewController并添加按钮+storyboard中Action Segue使用modal跳转到另一个storyboard生成的ViewController;-->正常,可以进行跳转
2.storyboard生成ViewController并添加按钮+storyboard中在第一个ViewController中生成导航栏+storyboard中Action Segue使用push跳转到另一个storyboard生成的ViewController;-->正常,可以进行跳转,并可以使用导航栏自带的返回按钮返回上一个页面
3.storyboard生成ViewController并添加按钮+storyboard中不添加任何导航栏+使用presentViewController跳转到另一个xib生成的ViewController;-->正常,可以进行跳转
4.storyboard生成ViewController并添加按钮+storyboard中添加导航栏+使用pushViewController跳转到另一个xib生成的ViewController;-->正常,可以进行跳转,并可以使用导航栏自带的返回按钮返回上一个页面
5.xib生成ViewController并添加按钮+代码生成导航栏(重点)+使用pushViewController跳转到另一个xib生成的ViewController;-->正常,可以进行跳转,并可以使用导航栏自带的返回按钮返回上一个页面
三、
//系统的方法
+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(nullable NSBundle *)storyboardBundleOrNil;
- (nullable __kindof UIViewController *)instantiateInitialViewController;
- (__kindof UIViewController *)instantiateViewControllerWithIdentifier:(NSString *)identifier;
1.获取第一个视图storyBoard
/* 加载名为storyboardName的Storyboard */
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
/* 获取storyboard的InitialViewController 即根控制器*/
FirstViewController *vc = [storyboard instantiateInitialViewController];
其中UIViewController可以根据当前视图进行替换,替换成StoryBoard对应的视图类,然后选择跳转方式
2.获取第二个视图storyboard的某个视图控制器的时候使用
SecondViewController *VC= [storyboard instantiateViewControllerWithIdentifier:@"NewVC”];(这个过程需要在StoryBoard中设置目标视图的Custom Class和StoryBoard ID)
//跳转事件的实现
在第一个视图添加按钮跳转到第二个视图
[self.navigationController pushViewController:VC animated:YES];(第一个视图是带有导航栏的)
2.XIB加载
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"View1" owner:nil options:nil];
UIView *v = [views lastObject];
CGRect r = v.frame;
r.origin.y += 80;
v.frame = r;
[self.view addSubview:v];
关于Xib加载方式具体:http://www.cocoachina.com/ios/20150202/11086.html