热门标签 | 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里就有值了!

 


推荐阅读
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • swift中的uitable
    下面是一个静态的tableview于图可知有两个section头是11..和22..,其中222是一个tableviewcell!并且从图可知道样式是leftD ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • Android源码中的Builder模式及其作用
    本文主要解释了什么是Builder模式以及其作用,并结合Android源码来分析Builder模式的实现。Builder模式是将产品的设计、表示和构建进行分离,通过引入建造者角色,简化了构建复杂产品的流程,并且使得产品的构建可以灵活适应变化。使用Builder模式可以解决开发者需要关注产品表示和构建步骤的问题,并且当构建流程发生变化时,无需修改代码即可适配新的构建流程。 ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • imnewtotheswiftandxcodeworld,soimhavingaproblemtryingtointegrateapackagetomypro ... [详细]
  • UIView的通用动画letviewUIView(frame:CGRectMake(10.0,10.0,100.0,40.0))self.view.addSubview(vie ... [详细]
  •   源码地址:https:github.comfzhleeSwiftUI-Guide当点击按钮时,弹出Modl模态窗口。示例代码:structContentView:View{@S ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
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社区 版权所有