当前位置: 首页 > 编程日记 > 正文

swift3.0三种反向传值

一 :通知

1.通知传值所用方法

// MARK: - private methods(内部接口)

    let NotifMycation = NSNotification.Name(rawValue:"MyNSNotification")

    func tempbuttonAction() {

        //这个方法可以传一个值

        NotificationCenter.default.post(name: NotifMycation, object: "填写所要传的值")

        //这个方法可传一个字典

//        NotificationCenter.default.post(name: NotifMycation, object: nil, userInfo: ["" : ""])

       self.dismiss(animated: true, completion: nil)

    }

2.通知传值接收方法
(1)接收通知

 //接受通知

        let NotifMycation = NSNotification.Name(rawValue:"MyNSNotification")

        NotificationCenter.default.addObserver(self, selector: #selector(upDataChange(notif:)), name: NotifMycation, object: nil)

//(2)移除通知的方法

deinit {

        //移除通知

        NotificationCenter.default.removeObserver(self)

    }

//(3)接收传过来的值

 func upDataChange(notif: NSNotification) {

        guard let text: String = notif.object as! String? else { return }

        self.text.text = text

    }


二:代理

1.设置代理

//(1)定义代理方法

protocol MyDelegate {

    func didDelegateText(text: String)

}

//(2)声明代理

    var delegate: MyDelegate?


//(3)向前传值button的响应方法---代理传值的方法就写在buton的点击事件中

 func tempbuttonAction() { //此处为button的点击事件

        delegate?.didDelegateText(text: self.textField.text!) //此处为代理传值的方法

        self.dismiss(animated: true, completion: nil)

    }

2.前一个界面接受代理

//(1)首先遵循代理   --->MyDelegate

//(2)

let vc = DelegateViewController()

            vc.delegate = self

//接收代理传过来的值

//代理接受传过来的值

    func didDelegateText(text: String) {

        self.text.text = text

    }


三: 闭包传值

//(1)设置闭包

typealias textBlock = (String) -> ()

    var block: textBlock?

    func getBlock(block: textBlock?) {

        self.block = block

    }

//(2)传值所用方法书写 ----即点击事件向前返回时的点击方法中

 func tempbuttonAction() {

        if let block = self.block {

            block(self.textField.text!)   //此处填写所要传的值

        }

        self.dismiss(animated: true, completion: nil)


    }

//(3)前一个界面接收闭包所传过来的值

let vc = BlockViewController()

            vc.getBlock{ (value) in

                self.text.text = value

            }


相关文章:

C++11中std::shared_future的使用

C11中的std::shared_future是个模板类。与std::future类似,std::shared_future提供了一种访问异步操作结果的机制;不同于std::future,std::shared_future允许多个线程等待同一个共享状态;不同于std::future仅支持移动操作&#xf…

聊聊抖音、奈飞、Twitch、大疆、快手、B站的多媒体关键技术

随着5G牌照发放,5G终端正在迎来集中上市潮,对于5G带来的变革一触即发。目前互联网上超过七成的流量来自多媒体,未来这个比例将超过八成。音视频就像空气和水一样普及,深度到每个人的生活和工作中。同时,深度学习技术则…

Linux安全事件应急响应排查方法总结

Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能、高扩展性、高安全性,受到了越来越多的运维人员追捧。但是针对Linux服务器操作系统的安全事件也非常多的。攻击方式主要是弱口令攻击、远程溢出攻击及其他…

C++11中std::packaged_task的使用

C11中的std::packaged_task是个模板类。std::packaged_task包装任何可调用目标(函数、lambda表达式、bind表达式、函数对象)以便它可以被异步调用。它的返回值或抛出的异常被存储于能通过std::future对象访问的共享状态中。 std::packaged_task类似于std::function&#xff0c…

Swift3.0和OC桥接方法

1.直接在工程中commandn,出现如图,点击Header File创建桥接文件Bridging-Header.h,如图: 2.点击next,出现如图画面,一定要记得勾选第一项,再点击create创建完成。 3.配置桥接文件,点击target - …

量子算命,在线掷筊:一个IBM量子云计算机的应用实践,代码都有了

整理 | Jane 出品| AI科技大本营(ID:rgznai100) “算命”,古今中外,亘古不衰的一门学问,哪怕到了今天,大家对算命占卜都抱着一些”敬畏“的信任心理,西方流行塔罗牌,国…

rails应用ajax之二:使用rails自身支持

考虑另一种情况: 1. 页面上半部分显示当前的所有用户,页面下半部分是输入新用户的界面; 2. 每当输入新用户时,页面上半部分会动态更新新加用户的内容; 我们还是用ajax实现,不过这次用rails内部对ajax的支持…

C++11中std::async的使用

C11中的std::async是个模板函数。std::async异步调用函数,在某个时候以Args作为参数(可变长参数)调用Fn,无需等待Fn执行完成就可返回,返回结果是个std::future对象。Fn返回的值可通过std::future对象的get成员函数获取。一旦完成Fn的执行&…

BAT数据披露:缺人!110万AI人才缺口,两者矛盾,凉凉了!

人工智能到底有多火?近日国内首份《BAT人工智能领域人才发展报告》新鲜出炉,此次报告是针对国内人工智能领域的人才争夺情况进行了梳理。并把研究对象锁定在BAT三大巨头的身上。来源:《BAT人工智能领域人才发展报告》其中得出最为核心的结论&…

swift3.0最新拨打电话方法

let alertVC : UIAlertController UIAlertController.init(title: "是否拨打报警电话:10086", message: "", preferredStyle: .alert) let falseAA : UIAlertAction UIAlertAction.init(title: "取消", style: .cancel, handler: nil) let tr…

关于手机已处理里重复单据的处理办法

更新视图 VWFE_TASK去掉 union TWFE_TASK_BAK 的部分,原因是因为后面做了流程预演导致的问题转载于:https://blog.51cto.com/iderun/1602828

swiftswift3.0自己封装的快速构建页面的方法

//#param mark 控件 func creatLabel(frame:CGRect,text:String,textColor:UIColor,textFont:CGFloat,textAlignment:NSTextAlignment) -> UILabel { let label UILabel.init(frame: frame) label.text text label.textColor textColor label.font UIFont.systemFont(of…

Google是如何做Code Review的?| CSDN原力计划

作者 | 帅昕 xindoo 编辑 | 屠敏出品 | CSDN 博客我和几个小伙伴一起翻译了Google前一段时间放出来的Google’s Engineering Practices documentation(https://github.com/google/eng-practices),翻译后的GitHub仓库:https://gith…

从FFmpeg 4. 2源码中提取dshow mjpeg code步骤

之前在https://blog.csdn.net/fengbingchun/article/details/103735560 中介绍过在Windows上通过vs2017编译FFmpeg源码进行单步调试的步骤,为了进一步熟悉FFmpeg这里以提取FFmpeg dshow mjpeg源码为例介绍其实现过程及注意事项: FFmpeg是用C实现的&…

ControlButton按钮事件

#ifndef __HControlButton_H__#define __HControlButton_H__#include "cocos2d.h"#include "cocos-ext.h"USING_NS_CC;USING_NS_CC_EXT; //用于标识当前按钮的状态typedef enum{ touch_begin, touch_down, touch_up,}tagForTouch;class HControlB…

swift3.0UIAlertController使用方法

let alertVC : UIAlertController UIAlertController.init(title: "添加照片", message: "", preferredStyle: .actionSheet) let cleanAction UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel,handler:nil) let photoActi…

Doxygen使用介绍

Doxygen的主页为http://doxygen.nl/,它的license为GPL,最新发布版本为1.8.17,源代码存放在https://github.com/doxygen/doxygen,它支持的语言包括C、C、Objective-C、C#、Java、Python等,它支持的系统平台包括Winodws、…

云计算软件生态圈:摸到一把大牌

作者 | 老姜编辑 | 阿秃出品 | CSDN云计算(ID:CSDNcloud)“我觉得我摸着了一把大牌。”软件领域的新锐企业——有赞公司创始人兼CEO白鸦在转向SaaS领域的一个细分市场时,曾对天使投资人这样说。而老牌软件企业金蝶创始人徐少春在2…

iOS封装HTTPS双向和单向验证

1.HttpsUtil (1) 对双向和单向验证的封装 #import <Foundation/Foundation.h> #import "AFNetworking.h" interface HttpsUtil : NSObject // 双向认证 (void)configHTTPSessionManager:(AFHTTPSessionManager *)manager serverCers:(NSArray *) serverCerNam…

开源库BearSSL介绍及使用

BearSSL是用C语言实现的SSL/TLS协议&#xff0c;它的源码可直接通过git clone https://www.bearssl.org/git/BearSSL 下载&#xff0c;它的license是MIT&#xff0c;最新版本为0.6。 BearSSL的主要特性是&#xff1a; (1). 正确且安全&#xff1a;对不安全的协议版本和算法选…

个推CTO安森:我所理解的数据中台

作者 | 个推CTO安森来源 | 个推技术学院&#xff08;ID:ID: getuitech&#xff09;引言在前面两篇文章&#xff08;《数据智能时代来临&#xff1a;本质及技术体系要求》和《多维度分析系统的选型方法》&#xff09;之中&#xff0c;我们概括性地阐述了对于数据智能的理解&…

玩弹珠手游-杂想

前言 为什么会写这个杂想呢&#xff1f; 因为最近这一个月来&#xff0c;我有点太沉迷怪物弹珠这个游戏了&#xff0c;每天下班回来的时间和上下班路途都在玩这个游戏&#xff0c;占据了我大部分的业余时间&#xff0c;也该是时候放一放玩游戏了。 为什么会玩这个游戏呢&#x…

OC封装时间选择器

#import <UIKit/UIKit.h> protocol TimeDatePickerViewDelegate <NSObject> //必须实现的两个协议 required - (void)changeTime : (NSDate *)date;//当时改变时出发 - (void)daterMine : (NSDate *)date;//更确定时间 end interface TimeDatePickerView :UIView /…

银行卡大小的充电宝,买就送耳机!

每个人的朋友圈和微博上似乎都有那么几个活得让人羡慕的朋友他们的生活看起来不仅精致&#xff0c;还很丰富多彩从早上第一刻就开始了↓出门旅游新一天的穿搭逆天朋友团咖啡馆到书店逼格十足的日料夜景太迷人忍不住发个小视频最后一定不要错过傍晚的夕阳&#xff0c;真的好上镜…

C++中插件使用举例

插件并不是在构建时链接的&#xff0c;而是在运行时发现并加载的。因此&#xff0c;用户可以利用你定义好的插件API来编写自己的插件。这样他们就能以指定方式扩展API的功能。插件库是一个动态库&#xff0c;它可以独立于核心API编译&#xff0c;在运行时根据需要显示加载。不过…

C和C++安全编码笔记:指针诡计

指针诡计(pointer subterfuge)是通过修改指针值来利用程序漏洞的方法的统称。 可以通过覆盖函数指针将程序的控制权转移到攻击者提供的外壳代码(shellcode)。当程序通过函数指针执行一个函数调用时&#xff0c;攻击者提供的代码将会取代原本希望执行的代码而得到执行。 对象指…

runLoop和runtime的分析

一.RunLoop: Runloop是事件接收和分发机制的一个实现。 Runloop提供了一种异步执行代码的机制&#xff0c;不能并行执行任务。 在主队列中&#xff0c;Main RunLoop直接配合任务的执行&#xff0c;负责处理UI事件、定时器以及其他内核相关事件。 (1).RunLoop的主要目的&#…

脑出血遇到深度学习,是否可以无所遁形?

近期大家对身体健康这个话题格外关注&#xff0c;而我们今天公开课的主题也恰巧与此不谋而合。我国脑卒的发病率已经超过心血管疾病&#xff0c;成为致死、致残率最高的疾病&#xff0c;并且发病率呈逐年上升的趋势&#xff0c;此外脑血管病和颅内肿瘤等脑部疾病也危害人们的健…

Cloudera Manager 5.3 和 CDH5.3.0 本地(离线)

为什么80%的码农都做不了架构师&#xff1f;>>> 声明一下&#xff1a;http://my.oschina.net/dataRunner/blog/369129 是本人所写&#xff0c;并非抄袭。 有部分内容来自 http://www.wangyongkui.com/hadoop-cdh5/ 这个文件是根据官网操作&#xff0c;翻译的不…