Viewcontroller
の画像を更新しようとしていますが、ImagePickerController
を使用していて、chosenImage
にデータがあり、それを割り当てることができました。画像が選択されてからviewcontroller
が再度ロードされると、loadUserProfile
メソッドにヒットするかどうかを確認するためにデバッグすることができました。しかし、UIImage
は何とかどこかで無限になっています。UIImageがUIImagePickerControllerからゼロになっています
@property (strong, nonatomic) UIImage *userPicImage;
@property (weak, nonatomic) IBOutlet UIImageView *userProfileImage;
- (void)viewDidLoad {
[super viewDidLoad];
[self loadUserProfile];
}
-(void)loadUserProfile
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString * userImageURL = [defaults objectForKey:@"imageURL"];
bool isReload = [defaults boolForKey:@"isReload"];
if(isReload)
{
//self.userPicImage is always nil
[self.userProfileImage setImage:self.userPicImage];
[defaults setBool:false forKey:@"comingBack"];
[defaults synchronize];
}
}
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImagePickerControllerSourceType source = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] ? UIImagePickerControllerSourceTypeCamera : UIImagePickerControllerSourceTypeSavedPhotosAlbum;
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
// userPicImage is not nil here!
self.userPicImage = chosenImage;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:true forKey:@"isReload"];
[defaults synchronize];
[picker dismissViewControllerAnimated:YES completion:^{
if (source == UIImagePickerControllerSourceTypeCamera) {
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
}];
}
フム、あなたは 'didFinishPickingMediaWithInfo'で' self'をチェックしなかったと 'loadUserProfile'は同じアドレスがあるかどうか? – nynohu
この投稿を確認し、要件に基づいてコードを修正してください。 http://www.theappguruz.com/blog/ios-image-picker-controller –