热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

swift场景转换2和委托

下面是3个视图控制器,用连线来进行跳转!还有一个是用id来进行跳转。如图选中线设置identifiter属性,把<去场景>按钮的identifiter改成c写一个A场景的视图控制器

下面是3个视图控制器,用连线来进行跳转!还有一个是用id来进行跳转。如图选中线设置identifiter属性 ,把<去场景>按钮的identifiter 改成c

写一个A场景的视图控制器

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
//这是id 按钮的关联函数 @IBAction func jumpToB(sender: UIButton) { //还可以传值 performSegueWithIdentifier(
"B", sender: "kangkang") } override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if(segue.identifier=="B"){ print(sender) } else if(segue.identifier=="c"){ print("to 场景") } } }

用委托实现更新数据如下图!点击button去b,然后点传值返回

写一个a场景的视图控制器


import UIkit
class
Aviewcontroll:UIViewController{ //var str:String="lable" @IBOutlet weak var mylabel: UILabel! override func viewDidLoad() { super.viewDidLoad() print("数据初始化lab:",mylabel.text) // mylabel.text= str // Do any additional setup after loading the view. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } @IBAction func tojumpB(sender: UIButton) { let vc = self.storyboard?.instantiateViewControllerWithIdentifier("myAScene") as! BviewControll vc.delegate=self presentViewController(vc, animated: true, completion: nil) } //说明用上面的方式进行跳转时,不会执行prepareForSegue方法 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { // let target = segue.destinationViewController as! BviewControll // target.delegate = self } } extension Aviewcontroll : BDelegate{ func b(controller: BviewControll, data:String){ print("\(data)") mylabel.text = data // str = data // print("数据:",str) } }

再写一个b场景的视图控制器

import UIKit

class BviewControll:UIViewController{
     var delegate: BDelegate?
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Do any additional setup after loading the view.
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        
    }
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
//      let target = segue.destinationViewController as! Aviewcontroll
//       self.delegate = target
        
    }
    
    @IBAction func jumptoA(sender: UIButton) {
//返回my self data 数据
delegate?.b(self, data:"my self data") dismissViewControllerAnimated(true, completion: nil) } }

再写一个delegate

import Foundation

protocol BDelegate{

    //    func someMethod()
    //这是为了满足ios开发中委托的标准写法,
    //并不是强制要求这样写,简单来说就是为了装逼
    
    //装逼标准:1.名字:delegate前面的内容,
    //2.第一个参数是对应的类型
    //3.真正需要传递的数据
    func b(controll:BviewControll,data:String)

}

这样就可以传值返回了label里就有值了!

 


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • imnewtotheswiftandxcodeworld,soimhavingaproblemtryingtointegrateapackagetomypro ... [详细]
author-avatar
壹滒_918
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有