Swift-->UIViewController的跳转,参数传递,返回参数

UIViewController的跳转,可以在Storyboard里面通过拖拽Segue进行跳转,也可以在代码中进行跳转.

本文分别介绍这2种方式.

1:Storyboard的方式 跳转,传递参数
首先选中 一个Button –> 按住 control 键–> 然后拖拽到需要跳转的 ViewController

接着选中中间的曲线, 在右边的属性窗口中 为segue添加 identifier (唯一哦)
这里写图片描述

之后,在Button所在的ViewController中重写prepareForSegue方法

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "navTest" {//注意此处.
    var params: String
    params = "参数"

    //主要就是通过类型强转,然后通过拿到的对象进行成员变量的赋值,相对于Android,这真的是简单粗暴
    let nav2Controller = segue.destinationViewController as! ViewController2
    nav2Controller.param = params
    }
}

2:通过代码的方式 跳转,传递参数

首先,选中一个 ViewController, 为 Storyboard 添加一个唯一标识id
这里写图片描述

@IBAction func onTestNav() {
if let testVC = self.storyboard?.instantiateViewControllerWithIdentifier("testStory") {
    let vc = testVC as! TestViewController
    vc.modalTransitionStyle = .CrossDissolve // 选择过渡效果
    vc.params = "参数传递" // 参数赋值

    self.presentViewController(vc, animated: true, completion: nil)
}

3:返回参数

首先在需要接受返回值的ViewController中,添加一个func(如下)

@IBAction func onClose(segue: UIStoryboardSegue) {
    //同样也是暴力的强转...
    let nav2 = segue.sourceViewController as! ViewController2
    print(nav2.backParam)
}

其次在Storyboard中(操作如下):
选中需要返回的Button, 然后按住 control键, 拖拽到exit图标处, 放手后,会出现刚刚在上面的步骤中出现的方法.选中它,即可.
这里写图片描述

4:通过delegate返回参数
首先,定义个protocol,用来表示delegate
这里写图片描述

其次,在跳转的时候, 为delegate 赋值.
这里写图片描述

ViewController还需要实现这个Protocol
这里写图片描述

这样就完成了,delegate的参数返回传递.


至此: 文章就结束了,如有疑问: QQ群 Android:274306954 Swift:399799363 欢迎您的加入.

©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值