现在的位置: 首页 > 综合 > 正文

NSnotification DeMo

2013年07月08日 ⁄ 综合 ⁄ 共 6399字 ⁄ 字号 评论关闭

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 -------

****************************

FirstViewController

*************

- (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.

}

抱歉!评论已关闭.