目前,我的应用程序在按下按钮时加载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];
仍然没有运气,我没有想法。
有谁知道这样做的方法?我认为不应该那么困难。
答案 0 :(得分:1)
将您的代码(您尝试的三种方法中的任何一种 - 第一种看起来很好)添加到viewDidAppear
方法而不是loadView
。请务必先拨打[super viewDidAppear]
。
在正确设置所有内容后,问题依赖于[controller presentModalViewController:mediaUI animated: YES];
被称为。