在应用程序加载时自动显示UIImagePickerController

时间:2012-03-12 22:34:54

标签: iphone ios ios5

目前,我的应用程序在按下按钮时加载UIImagePickerController。我想摆脱按钮并在视图加载时自动加载,然后在选择图像后关闭应用程序。

这是我单击按钮时使用的方法。

-(BOOL)startMediaBrowserFromViewController:(UIViewController *)controller usingDelegate:(id<UIImagePickerControllerDelegate,UINavigationControllerDelegate>)delegate
{
if(([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum] == NO)
   || (delegate == nil)
   || (controller == nil))
    return NO;
UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
mediaUI.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum];
mediaUI.allowsEditing = YES;
mediaUI.delegate = delegate;

[controller presentModalViewController:mediaUI animated: YES];
return YES;
}

我想我可以在loadView方法中调用此方法。我试过三种方法。首先,显而易见的一个。

[self startMediaBrowserFromViewController:self usingDelegate:self]

那不起作用,但仍然返回YES,我觉得很奇怪。

接下来,我调用了单击按钮时使用的方法。

[self btnShowClicked:nil]

也没有运气。最后,我尝试了一个我认为必须工作的,因为它会模拟按钮上的触摸(如果我理解正确的话)

[self.btnShow sendActionsForControlEvents:UIControlEventTouchUpInside];

仍然没有运气,我没有想法。

有谁知道这样做的方法?我认为不应该那么困难。

1 个答案:

答案 0 :(得分:1)

将您的代码(您尝试的三种方法中的任何一种 - 第一种看起来很好)添加到viewDidAppear方法而不是loadView。请务必先拨打[super viewDidAppear]

在正确设置所有内容后,问题依赖于[controller presentModalViewController:mediaUI animated: YES];被称为