swift UI专项训练42 用Swift代码实现页面跳转与传值

简介:    之前我们做过如果要点击一个按钮实现跳转到另一个按钮的办法,有时候我们需要通过一些动作来触发页面的跳转,比如摇动手机,这样就不能直接用连线的办法来实现跳转了,那么如何通过代码的方式来实...

   之前我们做过如果要点击一个按钮实现跳转到另一个按钮的办法,有时候我们需要通过一些动作来触发页面的跳转,比如摇动手机,这样就不能直接用连线的办法来实现跳转了,那么如何通过代码的方式来实现跳转呢?依旧使用过渡的方法,在storyboard中把要实现跳转的两张页面连线,注意不再局限于按钮等确定的实体和另一张页面连线,只要跳转关系是从一张到另一张,把两张页面连起来即可,连线选择show,这里就不演示了,注意一定要给这个seuge取一个名字,因为后面要遇到,这里取名showDetail



。比如我现在需要通过摇动手机来实现跳转,在第一张页面中重写以下方法:

override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
               if  self.showArray.count != 0 && self.markpoint != 0//你自己的判断条件
                { return true } else {
                return false
                }
        
    }

  上面这个方法来判断是否可以进行页面跳转,在其中加入我们自己的判断条件。

  然后在捕获摇动手机动作的方法中(如果不懂这个捕获的代码,可以看我前面写的文章,有介绍)加入我们的判断跳转条件,如果为真实现跳转,如果不满足跳转条件,给出你自己的警告:

override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
        if motion == UIEventSubtype.MotionShake
        {
            if markpoint == 1 && self.searchpoint == false{  //不能跳转,给出警告
        var alertController1 = UIAlertController(title: "没有符合条件的菜品!", message: nil, preferredStyle: .Alert)
            var cancelAction = UIAlertAction(title: "返回", style: .Cancel, handler: nil)
            alertController1.addAction(cancelAction)
              self.presentViewController(alertController1, animated: true, completion: nil)
            }
            if self.searchpoint == true{ //可以跳转
            self.performSegueWithIdentifier("showDetail", sender: self)//跳转到下一个页面,识别“showDetail”
            }
           
        }
    }

实现跳转主要使用了performSegueWithIdentifier方法。如果要传输局,使用方法prepareForSegue,我的代码如下:

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        
        if segue.identifier == "showDetail"  {
            let destinationController = segue.destinationViewController as ShowTableViewController
            destinationController.navigationItem.title = "摇到的菜"
            destinationController.tempCaipin = self.showArray //传值
        }
        
    }

第一个页面:



摇动手机后跳转:



目录
相关文章
|
机器学习/深度学习 数据可视化 算法
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
262 0
|
8月前
|
存储 数据管理 数据库
CoreData 在 swift UI 中的使用
当谈到在 Swift UI 中进行本地数据持久化,Core Data 是一个强大且常用的解决方案。Core Data 是苹果提供的一种数据存储和管理框架,用于在应用程序中创建、读取、更新和删除数据。它提供了一个对象图管理器,可以将数据映射到对象,并提供了一种简化数据操作的方式。在本文中,我们将深入介绍 Core Data 在 Swift UI 中的使用。
CoreData 在 swift UI 中的使用
|
机器学习/深度学习 数据可视化 算法
水果新鲜程度检测系统(UI界面+YOLOv5+训练数据集)
水果新鲜程度检测系统(UI界面+YOLOv5+训练数据集)
472 0
|
机器学习/深度学习 传感器 监控
基于YOLOv5的停车位检测系统(清新UI+深度学习+训练数据集)
基于YOLOv5的停车位检测系统(清新UI+深度学习+训练数据集)
471 0
|
机器学习/深度学习 人工智能 监控
基于深度学习的人群密度检测系统(UI界面+YOLOv5+训练数据集)
基于深度学习的人群密度检测系统(UI界面+YOLOv5+训练数据集)
517 0
|
机器学习/深度学习 监控 算法
智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
682 0
|
机器学习/深度学习 人工智能 算法
基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)
基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)
428 1
|
机器学习/深度学习 监控 算法
基于深度学习的跌倒检测系统(UI界面+YOLOv5+训练数据集)
基于深度学习的跌倒检测系统(UI界面+YOLOv5+训练数据集)
792 0
SwiftUI 面面观
前言 Swift 5.1 新语法 单表达式隐式返回值 根据结构体默认成员合成默认初始化器 字符串插入运算符新设计 属性包装器 不透明返回类型 Swift Style DSL / Function Builder 其他新特性 Swift 从 3.x Attribute Swift/SwiftUI API Design Guide 值类型和引用类型
1471 0
SwiftUI直通车系列(6)—— 使用动画
SwiftUI直通车系列(6)—— 使用动画
182 0

相关课程

更多