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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SwiftUI和Storyboard是两种用于构建用户界面的工具,它们在实现方式和使用方式上有一些区别。 1. 实现方式:SwiftUI使用Swift语言来构建用户界面,而Storyboard使用Interface Builder来创建界面。SwiftUI是一种声明性的编程范式,通过描述界面的结构和行为来构建界面。而Storyboard则是通过可视化界面编辑器来拖拽和连接各个界面元素来创建界面。 2. 代码结构:在SwiftUI,用户界面的结构和行为都由代码定义,可以轻松地使用Swift语言的各种特性来实现复杂的交互逻辑。而在Storyboard,用户界面的结构和行为是通过可视化编辑器创建和配置的,可以通过连接不同的视图控制器和实现代理方法来实现一些交互逻辑。 3. 跨平台支持:SwiftUI是跨平台的,可以在iOS、macOS、watchOS和tvOS上使用,而Storyboard主要用于iOS开发,虽然也可以在macOS上使用,但不支持watchOS和tvOS。 4. 动态性:SwiftUI支持动态修改界面,可以根据数据的变化自动更新界面。而Storyboard在运行时是静态的,不能直接根据数据的变化更新界面。 5. 可重用性:SwiftUI提供了一套强大的组件系统,可以轻松地创建可重用的界面组件。而在Storyboard界面元素的重用相对较为繁琐,需要手动复制和粘贴。 总的来说,SwiftUI更加现代化和灵活,适合于构建复杂的用户界面和交互逻辑。而Storyboard更适合于简单的界面设计和较少交互的应用程序。选择使用哪种工具主要取决于项目的需求和开发者的偏好。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值