swift中通知的使用方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
};
}
}
以上是关于swift中通知的使用方法的主要内容,如果未能解决你的问题,请参考以下文章
来自 JetpackNavigation 库中通知的隐式深层链接
使用 Core Data 在 Swift 中通过 UIProgressView 异步插入数据
如何使用 Multipeer Connectivity (Swift 3) 在会话中通过 didReceiveData() 调用 table.reloadData