swift html5 跳转页面跳转,Swift - 纯代码实现页面segue跳转,以及参数传递
(本文代码已升级至Swift4)
下面通过一个例子说明如何在代码中进行segue页面的切换,以及参数的传递。
样例功能如下:
1,主界面中是一个列表(这个列表是在代码中实现)
2,点击列表项时,界面会切换到详情页面,同时传递改列表项的值到详细页面。
效果图如下:
实现步骤:
1,在storyboard中拖入一个新的 ViewController用做详情页面,同时创建一个继承ViewController的新类 DetailViewController。并将其与storyboard中新建的详情页面进行视图与控制器的绑定。
2,在storyboard中,选中详情页面,通过最上方的Detail View Controller拖拽到主页面进行segue关联(show detail)
(右键点击 Detail View Controller 头部黄色的标志,在出现的菜单中选择“show detail”旁边的圆圈,在圆圈上按住左键拖动到主页面)
关联后如下:
3,选中关联线,设置segue的 Identifier属性为“ShowDetailView”
4,主界面代码 ViewController.swift
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var ctrlnames:[String] = ["任务1","任务2","任务3"]
var tableView:UITableView?
override func loadView() {
super.loadView()
}
override func viewDidLoad() {
super.viewDidLoad()
//创建表视图
self.tableView = UITableView(frame: self.view.frame, style:.plain)
self.tableView!.delegate = self
self.tableView!.dataSource = self
//创建一个重用的单元格
self.tableView!.register(UITableViewCell.self, forCellReuseIdentifier: "cell1")
self.view.addSubview(self.tableView!)
}
//在本例中,只有一个分区
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
//返回表格行数(也就是返回控件数)
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.ctrlnames.count
}
//创建各单元显示内容(创建参数indexPath指定的单元)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
-> UITableViewCell {
//为了提供表格显示性能,已创建完成的单元需重复使用
let identify:String = "cell1"
//同一形式的单元格重复使用,在声明时已注册
let cell = tableView.dequeueReusableCell(withIdentifier: identify,
for: indexPath) as UITableViewCell
cell.accessoryType = .disclosureIndicator
cell.textLabel?.text = self.ctrlnames[indexPath.row]
return cell
}
// UITableViewDelegate 方法,处理列表项的选中事件
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.tableView!.deselectRow(at: indexPath, animated: true)
let itemString = self.ctrlnames[indexPath.row]
self.performSegue(withIdentifier: "ShowDetailView", sender: itemString)
}
//在这个方法中给新页面传递参数
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "ShowDetailView"{
let controller = segue.destination as! DetailViewController
controller.itemString = sender as? String
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
5,详情页面代码 DetailViewController.swift
import UIKit
class DetailViewController: UIViewController {
var itemString:String?
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
textField.text = itemString
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
注:如果想在详细页中返回主页面,可以在详细页中添加一个返回按钮,按钮响应代码如下:
//返回到上一个页面
self.presentingViewController!.dismiss(animated: true, completion: nil)
源码下载:
hangge_720.zip
swift html5 跳转页面跳转,Swift - 纯代码实现页面segue跳转,以及参数传递相关推荐
- swift html5 相机调用,学习笔记:swift——调用照相机和照片
首先需要引用UIImagePickerControllerDelegate,UINavigationControllerDelegate //定义两个图片获取方法 func imagePickerCo ...
- 广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B...
广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B 注:域名B为afish.cnblogs.com 域名A页面代码: <!DOCTYPE html PUBLIC ...
- Ionic创建页面以及页面之间跳转、页面添加返回按钮、新增底部页面
场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...
- 登录form php一个页面跳转页面,Extjs4中表单登录功能、登录成功跳转页面的代码...
本节内容: Extjs4实现的表单登录功能,登录成功跳转页面. 例子: 复制代码 代码示例: Ext.onReady(function(){ Ext.QuickTips.init(); Ext.cre ...
- html自动跳转手机端,用JavaScript实现网站自动跳转电脑PC端与手机端不同页面
前天,有一个网友希望在其微擎系统跳转的时候实现鉴别用户不同的客户端,比如电脑PC端和手机端,实现不同的页面跳转.对于之前老蒋有给其设置过PC端网站然后检测手机访问的时候跳转到WAP网站的案例,对于这个 ...
- thinkphp3 页面跳转外部链接_一文看懂小程序跳转的规则和注意事项
微信小程序之间是可以相互跳转的,这大大方便了商家的品牌互推和互相导流.不过,小程序跳转功能也不能乱用,它是有一定规则的:1.需要用户触发跳转若用户未点击小程序页面任意位置,则开发者将无法调用 wx.n ...
- [微信小程序开发] 用wx.navigateTo方法跳转到tabBar中被定义了的页面将无法跳转
[微信小程序开发] 用wx.navigateTo方法跳转到tabBar中被定义了的页面将无法跳转 举例: main.js中: tabBar中 定义了页面"pages/test/main&qu ...
- androidstuio实现页面跳转_SPA(单页面应用)和 MPA(多页面应用)
SPA(单页面应用)和 MPA(多页面应用) 单页面应用 第一次进入页面时会请求一个html文件,刷新清除一下,切换到其他组件,此时路径也相应变化,但是并没有新的html文件请求,页面内容却变化了. ...
- React-Navigation的goBack()跳转到指定页面,以及不同栈之间的页面的返回操作
背景: 在做项目时使用React-Navigation进行页面管理.有两个需求 1:在我的中进入界面,从主界面A进入B,B进入C,C进入D,在D中点击返回键要求直接返回到A中. 2:从当前的通讯录中的 ...
- 新版微信不停跳转到小程序_微信小程序页面跳转 的几种方式
最近在做微信小程序,碰到页面跳转的问题,总结一下页面之间跳转的方式 一.wx.navigateTo(OBJECT) 这是最普遍的一种跳转方式,其官方解释为:"保留当前页面,跳转到应用内的某个 ...
最新文章
- UrlPager免费分页控件2.0版发布!
- iOS 设置Label中特定的文字大小和颜色
- vs创建html页面提示未找到,VS2015 打开html 提示 未能完成操作 解决办法
- Citrix VDI攻略之四:PVS安装及配置
- 训练效果不好的解决办法
- PDA应用的一些想法
- 解决 ModuleNotFoundError: No module named ‘requests‘ 问题
- 如何将列表分成大小均匀的块?
- 浪潮gs设置连接服务器信息,浪潮GS系统客户端设置方案
- 关于android中的armeabi、armeabi-v7a、arm64-v8a及x86等用splits用指定打包
- win7系统一键共享工具_开放教育作者共享适用于任何操作系统的有价值的工具
- 西部陆海新通道海铁联运通达中国六省市
- 《TCP/IP详解 卷1:协议》学习笔记(未完待续)
- CiscoPacketTracer网络模拟
- c语言基础知识大全 pdf,c语言基础知识点概述.pdf
- 《机器学习入门实战》第 01 篇 如何入门机器学习?
- 阿里云ECS服务器按量付费实例怎么释放?
- Centos 8查询和设置当前时区
- 离谱的布斯法(补码一位乘)
- yeelink平台试玩
热门文章
- 算法学习:LeetCode-592. 分数加减运算
- trans系列是sci几区_怎么确定SCI论文期刊是几区的
- 计算机ps论文范文,ps论文范文
- 条码扫描枪的连接与使用方法
- cad沿线插入块 lisp_AutoCAD导出块名和块插入点列表(AutoLISP源码)——好用的AutoCAD块统计工具...
- Java集合源码剖析——基于JDK1.8中LinkedList的实现原理
- WEB前端开发学习5大网站,你用过几个?
- python数学符号读法大全_数学符号读法大全
- apply for KPMG preparing
- 毕业论文格式(图片题注引用,表格,公式格式)