iPhone开发 Swift - NSNotification 通知
Swift创建Notification通知
- 创建一个SingleView Application
- 打开AppDelegate.swift,在方法
application(application:UIApplication,didFinishLaunchingWithOptions launchOptions: NSDictionary?)
中输入代码:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
//设置Notification 的类型
let types:UIUserNotificationType = UIUserNotificationType.Alert | UIUserNotificationType.Badge
//设置Notification的设置项,其中categories参数用来设置Notification的类别
let mySettings: UIUserNotificationSettings = UIUserNotificationSettings(forType: types, categories: nil);
//注册UserNotification
UIApplication.sharedApplication().registerUserNotifiationSettings(mySettings)
return true
}
- 配置不同的Actions,在方法
application(application:UIApplication,didFinishLaunchingWithOptions launchOptions: NSDictionary?)内的代码开始部分输入以下代码
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
//define Actions
var firstAction: UIMutableUserNotificationAction = UIMutableUserNotificationAction();
// The unique identifier for this action
fistAction.identifier = “FIRST_ACTION”;
// The localized title to display for this action
firstAction.title = “First Action”;
//define action’s activationMode, // How the application should be activated in response to the action
firstAction.activationMode = UIUserNotificationActivationMode.Background// 当点击的时候不启动程序,在后台处理
//define action’s destructive // Whether this action should be indicated as destructive when displayed.
firstAction.destructive = true
//define authentication // Whether this action is secure and should require unlocking before being performed. If the activation mode is UIUserNotificationActivationModeForeground, then the action is considered secure and this property is ignored.
firstAction.authenticationRequired = false//不需要用户解锁手机即可以处理该Notification
var secondAction:UIMutableUserNotificationAction = UIMutableUserNotificationAction()
secondAction.identifier = "SECOND_ACTION";
secondAction.title = "Second Action";
secondAction.activationMode = UIUserNotificationActivationMode.Foreground
secondAction.destructive = false
secondAction.authenticationRequired = false
var thirdAction:UIMutableUserNotificationAction = UIMutableUserNotificationAction()
thirdAction.identifier = "THIRD_ACTION";
thirdAction.title = "Third Action";
thirdAction.activationMode = UIUserNotificationActivationMode.Background
thirdAction.destructive = false
thirdAction.authenticationRequired = false
//Category
var firstCategory: UIMutableUserNotificationCategory = UIMutableUserNotificationCategory()
firstCategory.identifier = "FIRST_CATEGORY";
let defaultActions:NSArray = [firstAction, secondAction, thirdAction];
let minimalActions:NSArray = [firstAction, secondAction];
// Sets the UIUserNotificationActions in the order to be displayed for the specified context
firstCategory.setActions(defaultActions, forContext: UIUserNotificationActionContext.Default);// // the default context of a notification action
firstCategory.setActions(minimalActions, forContext: UIUserNotificationActionContext.Minimal);//Minimal // the context of a notification action when space is limited
let categories: NSSet = NSSet(objects: firstCategory)
//设置Notification 的类型
let types:UIUserNotificationType = UIUserNotificationType.Alert | UIUserNotificationType.Badge
//设置Notification的设置项,其中categories参数用来设置Notification的类别
let mySettings: UIUserNotificationSettings = UIUserNotificationSettings(forType: types, categories: nil);
//注册UserNotification
UIApplication.sharedApplication().registerUserNotifiationSettings(mySettings)
return true
}
4. 打开ViewController.swift文件,在ViewDidLoad方法中输入以下代码
override func viewDidLoad() {
super.viewDidLoad()
//define notification center
NSNotificationCenter.defaultCenter().addObserver(self, selector: “TestShape:”, name: “actionOne”, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector:”TestMessage:”, name: “actionTwo”, object: nil)
//定义一个触发Notification的程序
var dateComp: NSDateComponents =
NSDateComponents()
dateComp.year = 2014
dateComp.month = 09
dateComp.day = 09
dateComp.hour = 11
dateComp.minute = 11
dateComp.timeZone = NSTimeZone.systemTimeZone()
var calendar: NSCalendar = NSCalendar(calendarIdentifier:
NSGregorianCalendar)
var date: NSDate = calendar.dateFromComponents(dateComp)
//define Location notification
var notification: UILocalNotification =
UILocalNotification()
notification.category = “FIRST_CATEGORY”;
notification.alertBody = “This is a notification”
notification.fireDate = date
//fire notification
UIApplication.shareApplication().scheduleLocalNotification(notification)
}
func TestShape(notification: NSNotification) {
UIView *view = UIView(frame:
CGRectMake(100,100,100,100));
view.backgroundColor = UIColor.blackColor()
Self.view.addSubview(view)
}
func TestMessage(notification: NSNotification) {
var message:
UIAlertController = UIAlertController(title: “Notification Message”, message: “Hello,
this is an alert message”, preferredStyle: UIAlertControllerStyle.Alert)
message.addAction(UIAlertAction(title: “OK”, style:
UIAlertActionStyle.Default, handle: nil))
self.presentViewController(message, animated: true,
completion: nil)
}
5. 回到AppDelegate.swift,并添加以下方法
func
application(application: UIApplication!, handleActionWithIdentifier identifier: String!,
forLocalNotification notification: UILocalNotification!, completionHandler: (() -> Void)!) {
if identifier ==
“FIRST_ACTION” {
NSNotificationCenter.defaultCenter().postNotificationName(“actionOne”,
object: nil)
}
else if identifier == “SECOND_ACTION” {
NSNotificationCenter.defaultCenter().postNotificationName(“actionTwo”,
object: nil)
}
completionHandler()
}
iPhone开发 Swift - NSNotification 通知的更多相关文章
- iphone开发 IOS 组织架构图
转载自 :http://blog.csdn.net/mashi321323/article/details/18267719 登录|注册 mashi321323的专栏 目录视图 ...
- iPhone开发视频教程 Objective-C部分 (51课时)
第一.二章 OC基础语法 iPhone开发教程 第一章 OC基础语法 iPhone开发概述-必看(1.1)http://www.apkbus.com/android-102215-1-1.html ...
- iPhone开发常问的十个问题
iPhone开发常问的十个问题 前言 今天去stackoverflow.com上看了一下iPhone标签下排名最高的10个问题,将它们整理出来,希望这些常见问题能帮到一些iPhone开发的初学者.本来 ...
- iPad开发(相对于iPhone开发时专有的API)
iPad开发 一.iPad开发简介 1.什么是iPad 一款苹果公司于2010年发布的平板电脑 定价介于苹果的智能手机iPhone和笔记本电脑产品之间 跟iPhone一样,搭载的是iOS操作系统 2. ...
- (转载)iPhone开发视频教程 Objective-C部分 (51课时)
感谢好人的无私贡献!来源:http://www.cnblogs.com/aimeng/p/3370012.html 第一.二章 OC基础语法 iPhone开发教程 第一章 OC基础语法 i ...
- iphone开发技术要学习的内容
一.iOS基础 1 开发环境搭建以及IOS组件.框架的概要介绍. 2 mac操作系统与iOS操作系统 3 xcode IDE开发环境的初始 二.C语言基础 1数据类型.表达式与控制流程语句 2数组.函 ...
- iPhone开发视频教程 Objective-C部分
第一.二章 OC基础语法 iPhone开发教程 第一章 OC基础语法 iPhone开发概述-必看 (1.1) http://www.apkbus.com/android-102215-1-1.ht ...
- iPhone开发与cocos2d 经验谈
转CSDN jilongliang : 首先,对于一个完全没有mac开发经验,甚至从没摸过苹果系统的开发人员来说,首先就是要熟悉apple的那一套开发框架(含开发环境IDE.开发框架uikit,还有开 ...
- iOS开发UI篇—iPad和iPhone开发的比较
一.iPad简介 1.什么是iPad 一款苹果公司于2010年发布的平板电脑 定位介于苹果的智能手机iPhone和笔记本电脑产品之间 跟iPhone一样,搭载的是iOS操作系统 2.iPad的市场情况 ...
随机推荐
- (C++)STL排序函数sort和qsort的用法与区别
主要内容: 1.qsort的用法 2.sort的用法 3.qsort和sort的区别 qsort的用法: 原 型: void qsort(void *base, int nelem, int widt ...
- IIS网站程序无法访问oracle
系统环境: win7 + iis7 asp.net应用程序访问oracle数据库时,报ORA-12560: TNS: 协议适配器错误. 使用c/s程序访问数据库没有问题,plsql也没问题,说明ora ...
- Background Worker Component
http://www.delphiarea.com/products/delphi-components/backgroundworker/ Background Worker Component ( ...
- SCVMM配置
SCVMM添加工作组主机 1.准备一台物理主机并且安装WindowsServer 2012名为HV2(工作组不加域)接着添加hyper-v角色 2.把SCVMM1服务器上的SCVMM2012代理程序( ...
- .NET正则基础——.NET正则类及方法应用
1 概述 初学正则时,对于Regex类不熟悉,遇到问题不知道该用哪种方法解决,本文结合一些正则应用的典型应用场景,介绍一下Regex类的基本应用.这里重点进行.NET类的介绍,对于正则的 ...
- 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List<类名>的比较
1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam nam ...
- android之BitmapFactory.Options的使用
怎样获取图片的大小? 首先我们把这个图片转成Bitmap,然后再利用Bitmap的getWidth()和getHeight()方法就可以取到图片的宽高了. 新问题又来了,在通过BitmapFactor ...
- 深入了解android平台的jni(一)
android中很多Java类都具有native接口,这些接口由本地实现,然后注册到系统中. 主要的JNI代码放在以下的路径中:frameworks/base/core/jni/,这个路径中的 ...
- javascript实现单例模式
1.简单实现单例模式: var singleTon = function(){ var _pria = 'private value'; var show_pria = function(){ con ...
- linux 内核调试方法
http://my.oschina.net/fgq611/blog/113249 http://my.oschina.net/fgq611/blog/112929