Vra

Ek het 'n View -beheerder wat aangebied word om op een van die oortjies in 'n TabbarController te druk. In hierdie aansigbeheerder initialiseer ek 'n uiImagePickerController in die ViewDidload -metode:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

Die bedoeling is om dan die UIImagePickerController te vertoon op 'n later tydstip wanneer 'n knoppie ingedruk word. Om die een of ander rede, al is die tab-ikoon vir hierdie View Controller gedruk, is daar 'n 3-4 sekondes hang, terwyl hierdie ViewDidload-metode loop. As ek die reël _ImagePicker = [[UiImagePickerController alloc] init] kommentaar lewer, is daar geen hangtyd nie en die aansigbeheerder laai onmiddellik - soos dit moet.

Weet iemand waarom die toewysing en initialisering van die UIImagePickerController so lank neem? Indien wel, is daar 'n manier om dit te bespoedig, anders as om dit as 'n agtergrondproses te laat loop? Dit wil voorkom asof dit nie normale gedrag is nie.

Ek gebruik iOS7, en ek noem nie ViewWillappear of ViewDidappear nie.

Was dit nuttig?

Oplossing

Dit blyk dat dit slegs 'n probleem is in die ontfoutmodus (wanneer die iPhone gekoppel is en deur Xcode loop). Sodra dieselfde app loop sonder om aan XCODE gekoppel te word, kom die vertraging nie voor nie.

Ander wenke

Probeer hierdie 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];
    });
});

** Aanbieder is jou ViewController / self

Probeer hierdie.

    - (void)viewDidLoad{

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

[super viewDidLoad];
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top