これは本当に簡単なアイデアのようです...「写真を読み込む」というボタンがあります。そのボタンがクリックされたら、現在のビューを削除し、新しいビューをロードし、イメージピッカーを開いて、選択した画像を取得し、ロードしたばかりのビューに表示します。UIImagePickerがviewDidLoadで機能しないといういくつかのドキュメントを読み、代わりにawakeFromNibを使用することを提案するスレッドを見つけましたが、それでも機能しません...ここにコードがあります。助けてください。
MenuViewControllerで
-(IBAction)loadPictureButtonPressed
{
UIView *parent = [self.view superview];
if(self.loadPictureViewController.view.superview == nil)
{
if(self.loadPictureViewController == nil)
{
LoadPictureViewController *picController = [[LoadPictureViewController alloc]
initWithNibName:@"LoadPictureView" bundle: nil];
self.loadPictureViewController = picController;
[picController release];
}
}
[parent addSubview:self.loadPictureViewController.view];
[self.view removeFromSuperview];
}
LoadPictureViewControllerで
-(void)awakeFromNib
{
if([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary])
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:YES];
[picker release];
}
else
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Error!"
message:@"Device does not support photo library";
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
ここでも、このコードをviewDidLoadとawakeFromNibの両方に配置してみました。助けてください