swift中通知的使用方法

其实swift语言和OC语言,在本质上都是一样,其里面的方法之类的也基本相同。通知的使用方法也是一样,只是代码的书写格式发生了改变而已。下面我通过一个简单的小需求,也讲一讲通知,用swift中的闭包,也能完成此功能。

使用通知需要注意事项:

1,先确保接收中心存在,在设置通知中心。

2,最后一定要移除通知中心。

3,通知也是可以传值的,放在userInfo里面。

具体界面效果,我在这里就不截图了,希望各位开发者,自己写一遍,然后运行。

ViewController

//

//  ViewController.swift

//  swift中通知的用法

//

//  Created by mac on 16/2/5.

//  Copyright © 2016年 ZY. All rights reserved.

//

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var textF: UITextField!

@IBOutlet weak var presentButton: UIButton!

override func viewDidLoad() {

super.viewDidLoad()

presentButton.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside);

NSNotificationCenter.defaultCenter().addObserver(self, selector: "notificationAction:", name: "name", object: nil);

}

func notificationAction(fication : NSNotification){

//        print("\(fication.userInfo!["text"])");

let text = fication.userInfo!["text"]  as! String;

self.textF.text = text;

}

func buttonAction(btn:UIButton){

let viewC = SecondViewController(nibName:"SecondViewController",bundle: nil);

self.presentViewController(viewC, animated: true) { () -> Void in

};

}

override func viewDidDisappear(animated: Bool) {

super.viewDidDisappear(animated);

//移除通知中心

NSNotificationCenter.defaultCenter().removeObserver(self, forKeyPath: "text", context: nil);

}

}

SecondViewController

//

//  SecondViewController.swift

//  swift中通知的用法

//

//  Created by mac on 16/2/5.

//  Copyright © 2016年 ZY. All rights reserved.

//

import UIKit

class SecondViewController: UIViewController {

@IBOutlet weak var textF: UITextField!

@IBOutlet weak var disButton: UIButton!

override func viewDidLoad() {

super.viewDidLoad()

disButton.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside);

}

func buttonAction(btn:UIButton){

NSNotificationCenter.defaultCenter().postNotificationName("name", object: nil , userInfo: ["text":textF.text!]);

self.dismissViewControllerAnimated(true) { () -> Void in

};

}

}

时间: 2024-10-13 20:46:31

swift中通知的使用方法的相关文章

swift中通知的使用

1.发通知.(以这条通知为例,通知名字:gameOverNotification.通知参数:title) NSNotificationCenter.defaultCenter().postNotificationName("gameOverNotification", object: title) 2.在要监听这则通知的viewDidload方法里面添加观察者,以便监听这则通知 NSNotificationCenter.defaultCenter().addObserver(self,

swift 中异常的处理方法

swift 中什么时候需要处理异常,在调用系统某个方法的时,该方法最后有一个throws 说明该方法会抛出异常,如果一个方法抛出异常,那么需要对该异常进行处理 swift 异常处理提供了三种方法 方式一: try  ,程序员手动处理异常 do { let regx = try NSRegularExpression(pattern: pattern, options: .CaseInsensitive) } catch { //系统给我们提供了一个临时常量 error //在这里处理异常 pri

在 Swift 中实现单例方法

我们通常在进行开发的时候,会用到一个叫做 单例模式 的东西.相信大家也都对这种模式非常熟悉了.而且单例的使用在平时的开发中也非常频繁. 比如我们常用到的 NSUserDefaults.standardUserDefaults(). 在 Swift 中我们如何实现单例模式呢?如果你曾经对 Objective-C 比较熟悉的话,你可能首先会想到这样写: class DBManager { class var instance: DBManager? class func sharedInstance

在Swift中实现单例方法

在写Swift的单例方法之前可以温习一下Objective-C中单例的写法: 1 + (instancetype)sharedSingleton{ 2 static id instance; 3 4 static dispatch_once_t onceToken; 5 dispatch_once(&onceToken, ^{ 6 instance = [[self alloc] init]; 7 }); 8 return instance; 9 } 首先可以考虑仿照OC中的写法写一个. 因此S

OC & Swift中UITextFiled、UITextView限制输入字数

OC中限制字数的方法 我是用通知实现的,首先添加UITextFiled和UITextView的接收中心 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewNotifitionAction:) name:UITextViewTextDidChangeNotification object:nil]; [[NSNotificationCenter defaultCenter] addOb

Swift中编写单例的正确方式

Swift中编写单例的正确方式 2015-12-07 10:23 编辑: yunpeng.hu 分类:Swift 来源:CocoaChina翻译活动 14 10647 Objective-CSwift单例 招聘信息: Cocos2d-x 工程师 cocos2dx手游客户端主程 wp开发 iOS开发工程师 iOS软件工程师 iOS研发工程师 iOS讲师 iOS开发工程师 iOS高级开发工程师 iOS 高级软件工程师 iOS高级开发工程师 本文由CocoaChina译者leon(社区ID)翻译自kr

Swift Explore - 关于 Swift 中的 isEqual 的一点探索

在我们进行 App 开发的时候,经常会用到的一个操作就是判断两个对象是否相等.比如两个字符串是否相等.而所谓的 相等 有着两层含义.一个是值相等,还有一个是引用相等.如果熟悉 Objective-C 开发的话,就会知道 Objective-C 为我们提供了一系列 isEqual: 方法来判断值相等,而 == 等于号用来判断引用相等. 我们来看一个 Objective-C 的例子就会更加明白了: NSArray *arr1 = @[@"cat",@"hat",@&qu

Swift开发第八篇——方法嵌套&命名空间

本篇分为两部分: 一.Swift中的方法嵌套 二.Swift中的命名空间 一.Swift中的方法嵌套 在 swift 中我们可以让方法嵌套方法,如: func appendQuery(var url: String, key: String, value: AnyObject) -> String { func appendQueryDictionary(url: String, key: String, value: [String: AnyObject]) -> String { //..

Swift中的init方法

摘要:Swift有着超级严格的初始化方法,不仅强化了designated初始化方法的地位,所有不加修饰的init方法都需要在方法中确保非Optional的实例变量被赋值初始化,而在子类中,也强制调用super版本的designated初始化. 我们在深入初始化方法之前,不妨先再想想Swift中的初始化想要达到一种怎样的目的. 其实就是安全.在Objective-C中,init方法是非常不安全的:没有人能保证init只被调用一次,也没有人保证在初始化方法调用以后,实例的各个变量都完成初始化,甚至如