Вопрос

У меня есть контроллер представления, который представлен при нажатии на одну из вкладок в TabBarController. В этом контроллере представления я инициализую UIImagePickerController в методе ViewDidload:

- (void)viewDidLoad
{
    [super viewDidLoad];

    //Set imagePicker
    //-------------------------//
    _imagePicker = [[UIImagePickerController alloc] init];
    _imagePicker.delegate = self;
    _imagePicker.videoMaximumDuration = 10.0f;
}

Затем намерение состоит в том, чтобы отобразить UiimagePickerController позже, когда нажата кнопка. По какой-то причине, хотя, когда значок вкладки нажимается для этого контроллера представления, существует 3-4-секундная подвеска, в то время как этот метод просмотра работает. Когда я комментирую строку _imagepicker = [[uiimagepickercontroller alloc] init] нет времени подвески, и контроллер представления немедленно загружается - как и должно.

Кто -нибудь знает, зачем распределять и инициализацию, что UIImagePickerController занимает так много времени? Если да, то есть ли способ ускорить его, кроме как запустить его в качестве фонового процесса? Кажется, что это не нормальное поведение.

Я использую iOS7, и я не называю ViewWillAppear или ViewDidapear.

Это было полезно?

Решение

Оказывается, это только проблема в режиме отладки (когда iPhone подключен и работает через XCode). Как только одно и то же приложение работает без подключения к XCode, задержка не происходит.

Другие советы

Попробуйте это ios 12

//show a HUD or activityIndicator
dispatch_async(dispatch_queue_create("openPhotosCamera", NULL), ^{
   
    UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
    
    dispatch_async(dispatch_get_main_queue(), ^{
        //hide HUD or activityIndicator
        [presenter presentViewController:mediaUI animated:YES completion:nil];
    });
});

** Докладчик - это YourViewController / Self

Попробуй это.

    - (void)viewDidLoad{

    //Set imagePicker
    //-------------------------//
    _imagePicker = [[UIImagePickerController alloc] init];
    _imagePicker.delegate = self;
    _imagePicker.videoMaximumDuration = 10.0f;

[super viewDidLoad];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top