iOS基础——几种页面跳转方式及传值

一、storyboard文件中viewController的跳转和传值

1.跳转

首先storyboard本身提供了很多便捷的方式帮助我们构建布局文件,直接可以通过“连线”操作就可以实现viewContoller之间的跳转,storyboard可以看作是一个页面集合或者viewController的集合。这样不仅可以减少我们编写的代码量,也方便我们查看页面之间的跳转逻辑,下面我简单地说一下,操作方式:
新建几个viewController,使用按住control和左键(触摸板按下去),拖动,就会出现一条带箭头的线,然后移动到你想要跳转的viewController中,释放它,就是出现几个action选项,一般选show即可
在这里插入图片描述在这里插入图片描述

2.Action Segue区别

Segue分为以下几种类型,其中Push、Modal、Popover和Replace已弃用。

  • Show
  • Show Detail
  • Present Modally
  • Present as Popover
  • Custom
  • Push
  • Modal
  • Popover
  • Replace

Show

  • 该方法为视图控制器提供了自适应、灵活的呈现方式。
  • 用在UINavigationController堆栈视图时。目的地视图会被压入导航栈顶部。导航条提供一个后退按钮。
  • 用在UIViewController实例时,和present()效果一致。

Show Detail

  • 与Show相似,但会替换源视图,没有导航条和后退按钮。

Present Modally

  • 使用方法present()
  • 有多种不同呈现方式,可根据需要设置。在iPhone中,一般以动画的形式自下向上覆盖整个屏幕,用户无法与上一个视图交互,除非关闭当前视图;在iPad中,常见呈现为一个中心框,中心框以动画形式自下向上弹出,同时使底层视图控制器变暗。
  • 不提供返回按钮。

Present as Popover

  • 在iPad中,目标视图以浮动窗样式呈现,点击目标视图以外区域,目标视图消失;在iPhone中,默认目标视图以模态覆盖整个屏幕。

下面GIF演示了Show和Present在新页面出现方式的不同:
在这里插入图片描述

3.传值

使用Storyboard连线转场的方式都会触发prepare方法,在第一个页面覆写prepare方法,在vc.message中填要传的数据。

    //使用SB连接转场每次都会触发下面方法
    override func prepare(segue: UIStoryboardSegue, sender: AnyObject?) {
   
        //可再每个连线处类似按钮的东西加上identifier,即可判断不同指向
        if segue.identifier == "ShowDetailView" {
   
 
            //不带导航的方式
            let vc = segue.destination as! nextViewController
            //message是nextViewController的参数
            vc.message = "传值"
        }
    }

选中关联线,设置segue的 Identifier 属性为“ShowDetailView”
在这里插入图片描述

4.反向转场

Present Modally不提供返回按钮,需要定于“反向转场(unwind segue)”

在需要退出的控制器里面定于一个方法:此方法只有一个参数,类型必须是UIStoryboardSegue,且有修饰符@IBAction

@IBAction func close(segue:UIStoryboardSegue){
   
	//ReviewViewController是退出到之前的控制器
	le
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS 开发中,页面之间的跳转和数据传递通常使用以下方法: 1. 使用故事板(Storyboard):通过故事板可以直观地管理应用的界面和页面之间的跳转关系。在故事板中,你可以创建视图控制器(View Controller)之间的连线,以定义页面之间的跳转关系。你可以使用 Interface Builder 设置跳转时传递的数据。 2. 使用编程方式:如果你不使用故事板,也可以使用编程方式进行页面跳转。在源代码中,你可以创建新的视图控制器实例,并使用导航控制器(Navigation Controller)或模态弹出(Modal Presentation)等方式进行页面跳转。同样地,你可以通过代码设置传递的数据。 3. 数据传递:在页面之间传递数据,最常见的方法是使用属性(Property)或参数(Parameter)。你可以在目标视图控制器中定义公开的属性或参数,然后在源视图控制器中设置其值。当目标视图控制器加载时,就可以获取传递过来的数据。 4. 代理模式:如果需要在页面之间进行双向数据传递或回调操作,可以使用代理模式。通过定义代理协议(Delegate Protocol)和代理对象(Delegate Object),源视图控制器可以将自己设置为目标视图控制器的代理,并实现相应的代理方法来处理数据传递或回调操作。 这些是常见的 iOS 页面跳转和数据传递的方法,具体使用哪种方法取决于你的应用需求和开发方式

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值