Вопрос

Я пытаюсь показать 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), поэтому вам, возможно, придется добавить значение BOOL, чтобы это происходило только при первом появлении или когда вы этого хотите ( то естьне после отклонения модального представления).

Кажется, что viewDidLoad еще слишком рано использовать PresentModalViewController:animated:.Я бы предложил использовать одноразовый таймер для вызова метода из следующей итерации цикла выполнения:

[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