ios中几种跳转方式,普通,和StoryBoard跳转

一、纯代码界面跳转方式
    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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值