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 //传值
        }
        
    }

第一个页面:



摇动手机后跳转:



目录
相关文章
|
10月前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
195 1
|
JavaScript
element-ui(vue版)使用switch时change回调函数中的形参传值问题
element-ui(vue版)使用switch时change回调函数中的形参传值问题
174 0
|
3天前
|
人工智能 自然语言处理 前端开发
Flame:开源AI设计图转代码模型!生成React组件,精准还原UI+动态交互效果
Flame 是一款开源的多模态 AI 模型,能够将 UI 设计图转换为高质量的现代前端代码,支持 React 等主流框架,具备动态交互、组件化开发等功能,显著提升前端开发效率。
88 1
|
7月前
|
C# 开发者 设计模式
WPF开发者必读:命令模式应用秘籍,轻松简化UI与业务逻辑交互,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,命令模式是简化UI与业务逻辑交互的关键技术,通过将请求封装为对象,实现UI操作与业务逻辑分离,便于代码维护与扩展。本文介绍命令模式的概念及实现方法,包括使用`ICommand`接口、`RelayCommand`类及自定义命令等方式,并提供示例代码展示如何在项目中应用命令模式。
83 0
|
7月前
|
测试技术 Swift iOS开发
探索iOS自动化测试:使用Swift编写UI测试
【8月更文挑战第31天】在软件开发的海洋中,自动化测试是保证船只不偏离航线的灯塔。本文将带领读者启航,深入探索iOS应用的自动化UI测试。我们将通过Swift语言,点亮代码的灯塔,照亮测试的道路。文章不仅会展示如何搭建测试环境,还会提供实用的代码示例,让理论知识在实践中生根发芽。无论你是新手还是有经验的开发者,这篇文章都将是你技能提升之旅的宝贵指南。
|
存储 前端开发 C语言
代码写得很牛逼但UI界面却搞得很丑?来,杨工带你!
代码写得很牛逼但UI界面却搞得很丑?来,杨工带你!
174 0
|
10月前
|
监控 Linux Windows
装备神器edex-ui别人以为我很屌其实我只会if和else搬运代码
装备神器edex-ui别人以为我很屌其实我只会if和else搬运代码
93 1
|
机器学习/深度学习 数据可视化 算法
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
480 0
|
10月前
|
存储 传感器 监控
工业相机如何实现实时和本地Raw格式图像和Bitmap格式图像的保存和相互转换(C#代码,UI界面版)
工业相机如何实现实时和本地Raw格式图像和Bitmap格式图像的保存和相互转换(C#代码,UI界面版)
355 0
|
存储 数据管理 数据库
CoreData 在 swift UI 中的使用
当谈到在 Swift UI 中进行本地数据持久化,Core Data 是一个强大且常用的解决方案。Core Data 是苹果提供的一种数据存储和管理框架,用于在应用程序中创建、读取、更新和删除数据。它提供了一个对象图管理器,可以将数据映射到对象,并提供了一种简化数据操作的方式。在本文中,我们将深入介绍 Core Data 在 Swift UI 中的使用。
CoreData 在 swift UI 中的使用

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    Magma:微软放大招!新型多模态AI能看懂视频+浏览网页+UI交互+控制机器人,数字世界到物理现实无缝衔接
  • 3
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
  • 4
    如何在React.js中使用Shadcn/UI
  • 5
    移动端UI名词 - AxureMost
  • 6
    unity判断鼠标在不在UI上
  • 7
    Flame:开源AI设计图转代码模型!生成React组件,精准还原UI+动态交互效果
  • 8
    Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
  • 9
    FirstUI:Deepseek能帮我们做很多事情,而这款开源框架专为开发者设计的开源UI框架,让你的项目加速起飞
  • 10
    【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
  • 1
    如何在React.js中使用Shadcn/UI
    73
  • 2
    Flame:开源AI设计图转代码模型!生成React组件,精准还原UI+动态交互效果
    88
  • 3
    WEB CAD插件通过上下文对象MxPluginContext修改UI界面的方法
    18
  • 4
    FirstUI:Deepseek能帮我们做很多事情,而这款开源框架专为开发者设计的开源UI框架,让你的项目加速起飞
    33
  • 5
    【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    29
  • 6
    Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
    34
  • 7
    Magma:微软放大招!新型多模态AI能看懂视频+浏览网页+UI交互+控制机器人,数字世界到物理现实无缝衔接
    92
  • 8
    unity判断鼠标在不在UI上
    58
  • 9
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    83
  • 10
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    163