Swift页面的跳转和返回

之前一直使用的OC,现在也有不少人使用Swift,我也尝试一下,写一个简单又基础的功能:页面的跳转和返回。这里将显示几个swift文件的代码。

文件Common.swift的代码:

//
//  Common.swift
//  MySwiftProject
//
//  Created by ChengJh on 2024/5/15.
//  Copyright © 2024 CompanyName. All rights reserved.
//import SwiftUIextension Color {/* 使用示例:let customColor = Color(hex: "#123456"); */init(hex: String) {let scanner = Scanner(string: hex)/* 下划线的作用:我们不关心后面函数返回的结果, 所以使用下划线忽略它。 */_ = scanner.scanString("#") // 跳过'#'字符。var rgbValue: UInt64 = 0scanner.scanHexInt64(&rgbValue)let r = Double((rgbValue & 0xFF0000) >> 16) / 255.0let g = Double((rgbValue & 0xFF00) >> 8) / 255.0let b = Double(rgbValue & 0xFF) / 255.0self.init(red: r, green: g, blue: b)}}

文件ContentView.swift的代码:

//
//  ContentView.swift
//  MySwiftProject
//
//  Created by ChengJh on 2024/5/15.
//import SwiftUIstruct ContentView: View {var body: some View {
#if DEBUG// 打印日志。print("test-log");
#endifreturn NavigationView {VStack(alignment: .center) {Text("Hello, world!")NavigationLink(destination: SecondView()) {Text("Enter SecondView")// foregroundColor设置文字颜色。.foregroundColor(.white).padding(10)}.background(Color(hex: "#4982f5")).border(.red, width: 2).cornerRadius(5)// Spacer是一个占据剩余空间的视图元素, 可以帮助我们实现更灵活的布局。Spacer()}.frame(width: UIScreen.main.bounds.width).padding(EdgeInsets(top: 50, leading: 0, bottom: 0, trailing: 0)).background(Color("#f3f3f3"))//.background(.orange).navigationBarHidden(false).navigationViewStyle(.stack).navigationBarTitle("首页", displayMode: .inline);}}
}struct ContentView_Previews: PreviewProvider {static var previews: some View {// 注: 若内容体只有一条语句 则可省略关键字return。ContentView()}
}

文件SecondView.swift的代码:

//
//  SecondView.swift
//  MySwiftProject
//
//  Created by ChengJh on 2024/5/15.
//  Copyright © 2022 CompanyName. All rights reserved.
//import SwiftUIstruct SecondView: View {@Environment(\.presentationMode) var presentationMode;var body: some View {
#if DEBUG// 打印日志。print("second-log");
#endifreturn VStack {Text("Hello, second!").padding()Button("Goback") {presentationMode.wrappedValue.dismiss();}//Spacer是一个占据剩余空间的视图元素, 可以帮助我们实现更灵活的布局。Spacer()}.navigationBarTitle("Second");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样让猫给啥吃啥?生骨肉冻干拌粮哪有猫咪不吃的!

随着科学养猫的普及,生骨肉冻干喂养越来越受欢迎,生骨肉冻干喂养对猫的好处很多,它符合猫咪的天性,可以提供全面的营养,保持牙齿和牙龈的健康,还有助于维持健康的消化系统。然而,许多猫主人在选…

考研操作系统-1.计算机系统概述

目录 操作系统功能 操作系统的发展与分类 操作系统的运行环境 操作系统的体系结构 王道考研操作系统-1.计算机系统概述 操作系统 是指控制和管理整个计算机系统的硬件和软件资源,合理地组织调度计算机的工作和资源的分配;提供给用户和软件方便的接…

PHP类和对象概念及用法

类和对象的关系 可以将类看成为一件模具,倒入不同的材料(属性和方法),这些材料用于构建独特的对象 类的基本组成部分 属性:类中的变量,用于储存数据 方法:类中的函数,用于操作和访问类的属性 类及其属性和方法的创建…

GDPU 竞赛技能实践 天码行空 期末小测

1. 除法(原题) 👨‍🏫 实验二:1.简单枚举 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij n的表达式,其中a~j恰好为数字0~9的一个排列(可以有前导0&a…

复杂json解析(其中有一个key的value是json格式的字符串)

app上报的参数如下: {"clientId": "8517895440514039afcf6d3e5d7832ae","dua": "SNDOCKCJPH90_GA&VN900042418&BN0&VCXiaomi&MOM2012K11AC&RL1080_2239&CHIDunknown_unknown&LCID&RV&OSAndroid13&…

邦注科技 即热式节能模温机的原理及应用介绍

模温机是一种用于控制模具温度的设备,它在各种工业领域中发挥着重要作用,特别是在塑料加工行业中。以下是关于模温机的原理及应用的详细介绍: 原理 模温机的工作原理主要是通过加热和冷却功能,维持模具温度在一个恒定的范围内。…

Hadoop 3.4.0 项目实战

1环境基于 上一篇搭建 高可用分布式集群 2 官方提供MapReduce程序 #评估圆周率 cd /data/hadoop/share/hadoop/mapreduce/ hadoop jar hadoop-mapreduce-examples-3.4.0.jar pi 2 6 3 实例项目分析1 #预分析的文件如,如单词统计 # #上传文件到hdfs hdfs …

SOLIDWORKS 2024云服务新功能

一、简单的分享一下,在线观看,轻松标记 在达索系统SOLIDWORKS 2024云服务中,您只需在达索系统SOLIDWORKS中点击按钮,就可以将当前的设计分享给其他人,无论是客户、供应商还是团队内部成员。共享的用户只要打开浏览器里…

Python中的exec()函数,动态执行代码的利器

简介 在Python编程中,exec()函数是一个强大的工具,它允许你执行存储在字符串或对象中的Python代码。这种动态执行代码的能力为脚本编写、自动化测试、以及快速原型开发提供了极大的便利。 exec()函数的基本用法 exec()函数可以执行作为字符串输入的Py…

一本专业130+总分400+上海交通大学819考研经验上交电子信息与通信工程上岸,真题,大纲,参考书。

今年专业课819信号系统与信号处理130,总分400,复试表现中规中矩(初试分数查到才开始复习复试,希望大家汲取教训,初试考完就可以录取开始准备复试),交大初试比重很高,良心学校&#x…

LeetCode58.最后一个单词的长度

题目链接: 58. 最后一个单词的长度 - 力扣(LeetCode) 分析:普通的模拟题,只要有基本的算法思想就可以掌握。 算法思路:要统计最后一个单词的长度,所以我们只要找到最后一个单词出现的起始和终…

ASP.NET在线毕业论文提交系统的设计与实现

摘 要 本设计就很好的解决了上面的问题,它不但能实现毕业生论文的在线提交;还能给教师一定的权限,以在线的方式对自己指导的学生的论文进行审核;并且管理员还可以方便的将每个学生的论文信息按统一的论文排版本格式导出成word文…

高并发-线程池面试

文章目录 高并发-线程池2024心得好的博客必会面试题为什么使用线程池线程池的实现原理线程池的拒绝策略阻塞队列已满,在提交任务会发生什么问题threadlocal原理和使用多线程配置 高并发-线程池2024 心得 面试都是围绕着三高展开,高并发,高可…

洗衣洗鞋店做小程序有什么优势?

互联网洗衣洗鞋小程序闪亮登场,想知道这款小程序有何魅力吗? 如今,众多商家纷纷推出预约上门洗鞋服务,💁‍♀️并倾力打造洗鞋小程序,旨在拓展线上销售渠道。🌟那么,这款洗鞋小程序究…

Oracle数据库的CURRENT SCN

数据库的CURRENT SCN是Oracle当前最大的SCN,可以通过多种方法获取该SCN: 1、直接从内存中获取。由于当前最大SCN存储在fixed sga中,因此可以通过Oracle debug工具DUMP kcsgscn结构体获取内存中的最大SCN。在下面的程序中,BA371为1…

网络配置的加密存储

随着数据泄露事件的增加,扰乱了公司的正常工作周期,企业遭受了损失。事实上,数据泄露可以通过存储加密来控制,存储加密是防止黑客对网络数据库造成严重破坏的最有效方法之一。在网络配置管理器中,存储加密可用于存储设…

SpringBoot解析MyBatis预编译SQL

pom.xml <profile><!-- 开发环境 --><id>dev</id><activation><!-- 默认激活 --><activeByDefault>true</activeByDefault></activation><properties><spring.profiles.active>dev</spring.profiles.ac…

Unity 模拟放大镜局部放大UI 效果实现

UI 放大实现 RectTransformUtility.ScreenPointToLocalPointInRectangle(rectScale, eventData.position, eventData.pressEventCamera, out localPos); 使用IPointerDownHandler 获取鼠标点击时的有效负载&#xff0c;并将鼠标坐标转成对应的UI 坐标&#xff0c;rectScale 为…

【Win】一键恢复IE11工具:让旧版浏览器在新系统中重生

微软在2020年8月的时候就已经公告IE11的生命周期终点&#xff0c;多次提醒将在2022年6月15日起不再支持IE 11&#xff0c;呼吁用户尽快转换到Chromium-based Microsoft Edge。微软也陆续终止旗下服务支持这个旧式浏览器。2021年3月&#xff0c;Chrome浏览器已不支持旧IE App。2…

字符串解析-KMP魔改

题目 已知存在一种字符串解析语法&#xff0c;其中的语法元素如下 N:用于匹配单个数字(0-9) A:用于匹配单个字母(a-z,A-Z) n():用于表示一个分组&#xff0c;分组中至少有一个N语法元素或者A语法元素&#xff0c;n为一个数值&#xff0c;表示匹配n次&#xff0c;1<n< 20…