我想只要我的视图控制器负载之一显示的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];
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top