Appdelegate.h
*************************************
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
FirstViewController *first=[[FirstViewController alloc]init];
SecondViewController *second=[[SecondViewController alloc]init];
UITabBarController *tabBar=[[UITabBarController alloc]init];
[tabBar setToolbarItems:[NSArray arrayWithObjects:@"first",@"second", nil] animated:YES];
[tabBar setViewControllers:[NSArray arrayWithObjects:first,second, nil]];
[(UITabBarItem *)[tabBar.tabBar.items objectAtIndex:0] setTitle:@"frist"];
[(UITabBarItem *)[tabBar.tabBar.items objectAtIndex:0] setImage:[UIImage imageNamed:@"first.png"]]; //30 * 30
[(UITabBarItem *)[tabBar.tabBar.items objectAtIndex:1] setTitle:@"second"];
[(UITabBarItem *)[tabBar.tabBar.items objectAtIndex:1] setImage:[UIImage imageNamed:@"second.png"]];
self.window.rootViewController = tabBar;
[self.window makeKeyAndVisible];
return YES;
}
ViewController.m
****************************
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
imageView=[[UIImageView alloc]initWithFrame:CGRectMake(20, 100, 270, 200)];
imageView.backgroundColor=[UIColor whiteColor];
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"Header"])
{
UIImage *image=[UIImage imageWithData:[defaults objectForKey:@"Header"]];
imageView.image=image;
}
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(ChangeHeader:) name:@"MyHeader" object:nil];
[self.view addSubview:imageView];
UIButton *btnidentity=[UIButton buttonWithType:UIButtonTypeRoundedRect];
btnidentity.frame=CGRectMake(60, 350, 70, 30);
btnidentity.tintColor=[UIColor greenColor];
[btnidentity setTitle:@"切换图片" forState:UIControlStateNormal];
[btnidentity setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
[btnidentity addTarget:self action:@selector(ChangeImage:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnidentity];
UIButton *btnCancel=[UIButton buttonWithType:UIButtonTypeRoundedRect];
btnCancel.frame=CGRectMake(150, 350, 70, 30);
btnCancel.tintColor=[UIColor greenColor];
[btnCancel setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btnCancel setTitle:@"取消" forState:UIControlStateNormal];
[btnCancel addTarget:self action:@selector(CancelImage:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnCancel];
}
-(void)ChangeImage:(id)sender
{
UIImagePickerController *pickerController=[[UIImagePickerController alloc]init];
pickerController.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
pickerController.mediaTypes=[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
pickerController.allowsEditing=YES;
pickerController.delegate=self;
[self presentViewController:pickerController animated:YES completion:nil];
[pickerController release];
}
-(void)ChangeHeader:(NSNotification *)obj
{
self.imageView.image=obj.object;
}
-(void)CancelImage:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma delegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSLog(@"info:%@",info);
UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];
NSLog(@"image%@",image);
self.imageView.image=image;
[picker dismissViewControllerAnimated:YES completion:nil];
[[NSNotificationCenter defaultCenter]postNotificationName:@"MyHeader" object:image userInfo:Nil];
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
[defaults setObject:UIImageJPEGRepresentation(image, 1) forKey:@"Header"];
[defaults synchronize];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES completion:nil];
}
#pragma -------
*************
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor=[UIColor clearColor];
Header=[[UIImageView alloc]initWithFrame:CGRectMake(30, 100, 320, 200)];
Header.backgroundColor=[UIColor whiteColor];
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"Header"])
{
UIImage *image=[UIImage imageWithData:[defaults objectForKey:@"Header"]];
self.Header.image=image;
}
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(ChangeHeader:) name:@"MyHeader" object:nil];
[self.view addSubview:Header];
}
-(void)ChangeHeader:(NSNotification *)obj
{
self.Header.image=obj.object;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
SecondViewController
**********
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor=[UIColor clearColor];
Header=[[UIImageView alloc]initWithFrame:CGRectMake(30, 100, 320, 200)];
Header.backgroundColor=[UIColor whiteColor];
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"Header"])
{
UIImage *image=[UIImage imageWithData:[defaults objectForKey:@"Header"]];
self.Header.image=image;
}
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(ImageChange:) name:@"MyHeader" object:nil];
UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame=CGRectMake(150, 350, 70, 30);
[button addTarget:self action:@selector(changeImage) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"更换图片" forState:UIControlStateNormal];
[self.view addSubview:Header];
[self.view addSubview:button];
}
-(void)changeImage
{
ViewController *viewController=[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
[self presentViewController:viewController animated:YES completion:nil];
}
-(void)ImageChange:(NSNotification *)obj
{
self.Header.image=obj.object;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
通知的小Demo,留作己用