在的UIImagePickerController不viewDidLoad中加载的iPhone SDK
-
18-09-2019 - |
题
我想只要我的视图控制器负载之一显示的UIImagePickerController。我想此无需用户按下一个按钮,以便我推翻viewDidLoad方法如下:
- (void)viewDidLoad {
[super viewDidLoad];
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.allowsImageEditing = YES;
imagePickerController.delegate = self;
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}
此编译和运行,但是当视图控制器被装载在图像拾取器不显示。如果我把它连接到例如按钮的情况下,本代码工作正常。任何想法?
感谢。
解决方案
我有同样的问题,但解决它。尝试使用
-(void) awakeFromNib {
}
它只是将一切加载后加载。
其他提示
尝试把代码
-(void)viewDidAppear
这甚至可以运行每个视图的屏幕上出现,虽然时间(包括当您关闭UIImagePicker后出现),所以你可能需要添加一个布尔值,使其只发生在第一次显示,或当您希望它(即,不是驳回模态的视图之后)。
似乎viewDidLoad中太早使用presentModalViewController:动画:。我sugget叉断单次计时器从下一运行循环迭代调用的方法:
[NSTimer
scheduledTimerWithTimeInterval:0
target:self
selector:@selector(onLoadTimer:)
userInfo:nil
repeats:NO];
添加以下方法:
- (void)onLoadTimer:(id)unused
{
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}
不隶属于 StackOverflow