本地通知(二)

以前写过一篇文章:本地通知,本文是基于此基础的一个简单的例子。

 

localnotificationAppDelegate.h

 

#import <UIKit/UIKit.h>

@class localnotificationViewController;

@interface localnotificationAppDelegate : NSObject <UIApplicationDelegate> {
	UIWindow *window;
	localnotificationViewController *viewController;
}

@property(nonatomic, retain) IBOutlet UIWindow *window;
@property(nonatomic, retain) IBOutlet localnotificationViewController *viewController;

@end

 

localnotificationAppDelegate.m

 

#import "localnotificationAppDelegate.h"
#import "localnotificationViewController.h"

@implementation localnotificationAppDelegate

@synthesize window;
@synthesize viewController;

#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
	application.applicationIconBadgeNumber = 0;
	[self.window addSubview:viewController.view];
	[self.window makeKeyAndVisible];
	
	return YES;
}

#pragma mark -
#pragma mark Memory management

- (void)dealloc {
	[viewController release];
	[window release];
	[super dealloc];
}

@end

 

 localnotificationViewController.h

 

#import <UIKit/UIKit.h>

@interface localnotificationViewController : UIViewController {
	IBOutlet UILabel *myLable1;
	IBOutlet UILabel *myLable2;
	IBOutlet UILabel *myLable3;
}

@property(nonatomic, retain) UILabel *myLable1;
@property(nonatomic, retain) UILabel *myLable2;
@property(nonatomic, retain) UILabel *myLable3;

- (IBAction)onChangeValue:(id)sender;

@end

 

 localnotificationViewController.m

 

#import "localnotificationViewController.h"

@implementation localnotificationViewController

@synthesize myLable1, myLable2, myLable3;

- (void)viewDidLoad {
	[super viewDidLoad];
	[[UIApplication sharedApplication] cancelAllLocalNotifications];
}

- (void)viewDidUnload {
	self.myLable1 = nil;
	self.myLable2 = nil;
	self.myLable3 = nil;
}

- (void)dealloc {
	[myLable1 release], myLable1 = nil;
	[myLable2 release], myLable2 = nil;
	[myLable3 release], myLable3 = nil;
	[super dealloc];
}

#pragma mark -
#pragma mark onChageValue

- (IBAction)onChangeValue:(id)sender {
	UISwitch *switchBtn = (UISwitch *)sender;
	if (switchBtn.on) {
		UILocalNotification *notification = [[UILocalNotification alloc] init]; 
		NSDate *now = [NSDate date];  
		notification.timeZone = [NSTimeZone defaultTimeZone]; 
		notification.repeatInterval = NSDayCalendarUnit;
		notification.applicationIconBadgeNumber = 1;
		notification.alertAction = NSLocalizedString(@"显示", nil);
		switch (switchBtn.tag) {
			case 0:
			{
				notification.fireDate = [now dateByAddingTimeInterval:5];
				notification.alertBody = self.myLable1.text; 
			}
				break;
			case 1:
			{
				notification.fireDate = [now dateByAddingTimeInterval:10];
				notification.alertBody = self.myLable2.text; 
			}
				break;
			case 2:
			{
				notification.fireDate = [now dateByAddingTimeInterval:15];
				notification.alertBody = self.myLable3.text; 
			}
				break;
			default:
				break;
		}
		[notification setSoundName:UILocalNotificationDefaultSoundName];
		NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:
												 [NSString stringWithFormat:@"%d", switchBtn.tag], @"key", nil];
		[notification setUserInfo:dic];
		[[UIApplication sharedApplication] scheduleLocalNotification:notification];
	} else {
		NSArray *array = [[UIApplication sharedApplication] scheduledLocalNotifications];
		for (int i = 0; i < [array count]; i++) {
			UILocalNotification	*myUILocalNotification = [array objectAtIndex:i];
			if ([[[myUILocalNotification userInfo] objectForKey:@"key"] intValue] == switchBtn.tag) {
				[[UIApplication sharedApplication] cancelLocalNotification:myUILocalNotification];
			}
		}
	}
}

@end

 

效果图:

本地通知(二)
 
本地通知(二)

你可能感兴趣的:(ios,iPhone)