Swift页面的跳转和返回

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

文件Common.swift的代码:

//
//  Common.swift
//  MySwiftProject
//
//  Created by ChengJh on 2024/5/15.
//  Copyright © 2024 CompanyName. All rights reserved.
//

import SwiftUI


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

文件ContentView.swift的代码:

//
//  ContentView.swift
//  MySwiftProject
//
//  Created by ChengJh on 2024/5/15.
//

import SwiftUI

struct ContentView: View {
  var body: some View {
#if DEBUG
    // 打印日志。
    print("test-log");
#endif
    return 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 SwiftUI

struct SecondView: View {
  @Environment(\.presentationMode) var presentationMode;
  
  var body: some View {
#if DEBUG
    // 打印日志。
    print("second-log");
#endif
    return VStack {
      Text("Hello, second!")
      .padding()
      Button("Goback") {
        presentationMode.wrappedValue.dismiss();
      }
      //Spacer是一个占据剩余空间的视图元素, 可以帮助我们实现更灵活的布局。
      Spacer()
    }
    .navigationBarTitle("Second");
  }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

监控 Apache Web 服务器性能指标

Apache Web 服务器以其可靠性、灵活性和强大的功能而闻名,几十年来一直是互联网的支柱,从小型个人博客到大型电子商务平台,Apache 的多功能性使其能够轻松处理各种 Web 应用程序。 Apache 的 Web 服务器是如何工作的 尽管 Web 服务器涉及复…

【PB案例学习笔记】-03用户名密码校验

写在前面 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git 需要源代码的小伙伴们可以自行…

企业OA办公系统开发笔记:1、搭建后端环境

文章目录 企业办公系统:搭建环境一、项目介绍1、介绍2、技术栈3、项目模块4、数据库 二、搭建环境1、搭建后端1.1、搭建父工程clfwzx-oa-parent1.2、搭建工具类父模块common1.3、搭建工具类common的子模块1.4、搭建实体类模块model和项目模块service-oa 2、配置依赖…

第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组 AB路线

//bfs 1000100010不会超时 #include<bits/stdc.h> using namespace std; #define int long long const int n1e311; int a,b,c,h[n][n][12],k[4][2]{0,1,0,-1,1,0,-1,0}; char t[n][n]; struct s {int x,y,z,w; }; signed main() {ios::sync_with_stdio(false);cin.t…

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

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

Qt---TCP文件传输服务器

文件传输流程&#xff1a; 服务器端&#xff1a; serverwidget.ui serverwidget.h #ifndef SERVERWIDGET_H #define SERVERWIDGET_H#include <QWidget> #include<QTcpServer>//监听套接字 #include<QTcpSocket>//通信套接字 #include<QFile> #includ…

线上虚拟展厅需要具备哪些技术特点?

虚拟展厅需要具备三维建模与渲染技术、虚拟现实技术、交互技术、多媒体展示技术、网络传输技术、大数据分析与反馈技术、跨平台兼容性等技术特点。这些技术特点共同构成了虚拟展厅的核心竞争力&#xff0c;使其能够为用户提供逼真、生动、互动的参观体验。 虚拟展厅的技术特点主…

17.高并发场景下CAS效率的优化

文章目录 高并发场景下CAS效率的优化1.空间换时间&#xff08;LongAdder&#xff09;2.对比LongAdder和AtomicLong执行效率2.1.AtmoictLong2.2.LongAdder2.3.比对 3.LongAdder原理3.1.基类Striped64内部的三个重要成员3.2.LongAdder.add()方法3.3.LongAdder中longAccumulate()方…

【网络安全】【Frida实战案例】某图xx付费功能逆向分析(一)

文章目录 一、目标应用二、环境三、步骤1、查看布局id2、用到的Log日志类信息3、尝试hook VIP判断方法 四、总结五、相关源码 1、【网络安全】【Frida实践案例】某图xx付费功能逆向分析&#xff08;一&#xff09; 2、【网络安全】【Frida实践案例】某图xx付费功能逆向分析&…

MySQL基础--SQL优化

插入数据 insert 优化 批量插入 手动提交事务 主键顺序插入 大批量插入数据 如果一次性需要大批量插入数据&#xff0c;使用 insert 语句插入性能较低&#xff0c;此时可以使用 MySQL 数据库提供的 load 指令插入&#xff0c;操作如下&#xff1a; 主键优化 在 InnoDB 存储引擎…

QT:QML与C++交互

目录 一.介绍 二.pro文件添加模块 三.h文件 四.cpp文件 五.注册 六.调用 七.展示效果 八.代码 1.qmlandc.h 2.qmlandc.cpp 3.main.cpp 4.qml 一.介绍 在 Qt 中&#xff0c;QML 与 C 交互是非常重要的&#xff0c;因为它允许开发人员充分利用 QML 和 C 各自的优势&…

软考--试题六--策略模式(Strategy)

策略模式(strategy) 意图 定义一系列的算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化 结构 适用性 1、许多相关的类仅仅是行为有异。“策略”提供了一种多个行为中的一个行为来配置一个类的方法…

虚拟化技术 使用vSphere Web Client管理ESXi主机

一、实验内容 通过vSphere Web Client将ESXi主机连接到iSCSI共享存储通过vSphere Web Client&#xff0c;使用共享存储创建虚拟机并安装windows 2008 R2操作系统通过vSphere Web Client&#xff0c;为虚拟机创建快照 二、、实验主要仪器设备及材料 安装有64位Windows操作系统…

SMB攻击利用之-mimikatz上传/下载流量数据包逆向分析

SMB协议作为windows环境下最为常见的一种协议,在历史上出现过无数的通过SMB协议进行网络攻击利用的案例,包括针对SMB协议本身以及通过SMB协议实施网络攻击。 本文将介绍一种通过SMB协议的常见利用方式,即向远程主机传输mimikatz,作为我的专栏《SMB攻击流量数据包分析》中的…

FPGA - GTX收发器-K码 以及 IBERT IP核使用

一&#xff0c;前言 在FPGA - Xilinx系列高速收发器---GTX中详细介绍了GTX的基础知识&#xff0c;以及IP核的调用&#xff0c;下面将补充一下GTX在使用中的高速串行数据流在接收和发送时的控制与对齐&#xff08;K码&#xff09;&#xff0c;以及高速接口GTX&#xff0c;如果G…

ApiHug - 闭门造车, 出门合辙

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Nex…

第18节 神级开源shellcode工具:donut

我做了一个关于shellcode入门和开发的专题&#x1f469;&#x1f3fb;‍&#x1f4bb;&#xff0c;主要面向对网络安全技术感兴趣的小伙伴。这是视频版内容对应的文字版材料&#xff0c;内容里面的每一个环境我都亲自测试实操过的记录&#xff0c;有需要的小伙伴可以参考。 我的…

python批量生成25位数字字母混合序列号(SN码)

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 SN码,即Serial Number的缩写,有时也被称为Serial No,是产品序列号的意思。它是一个独特的标识符,用于区分同一种类

家用充电桩远程监控安全管理系统解决方案

家用充电桩远程监控安全管理系统解决方案 在当今电动汽车日益普及的背景下&#xff0c;家用充电桩的安全管理成为了广大车主关注的重点问题。为了实现对充电桩的高效、精准、远程监控&#xff0c;一套完善的家用充电桩远程监控安全管理系统解决方案应运而生。本方案旨在通过先…

SAP_ABAP-思考篇

作为一个SAP十年左右的从业者&#xff0c;其实我很清楚&#xff0c;我自身的能力&#xff0c;确实是很多东西都会一点&#xff0c;但是没有一样是精通的。坦白来说&#xff0c;我的个人简介里&#xff0c;虽然也不算夸大&#xff0c;但我估计有些新手小白看着可能会觉得还挺厉害…