Frage

Ich habe einen Ansichtsregler, der beim Drücken auf einer der Registerkarten in einem Tab -Barontroller präsentiert wird. In dieser Ansichtsreglerin habe ich einen UIImagePickerController in der ViewDidload -Methode initialisiert:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

Ziel ist es, den UIImagePickerController zu einem späteren Zeitpunkt anzuzeigen, wenn eine Taste gedrückt wird. Aus irgendeinem Grund, wenn das Registerkartensymbol für diesen Ansichtsregler gedrückt wird, gibt es einen 3-4 Sekunden-Hang, während diese ViewDIDLoad-Methode ausgeführt wird. Wenn ich die Zeile _imagepicker = [[uiimagepickerController alloc] init] herauskomme, gibt es keine Hängezeit und der Ansichtscontroller wird sofort geladen - so wie es sollte.

Weiß jemand, warum die Zuordnung und Initialisierung des UIImagePickerController so lange dauert? Wenn ja, gibt es eine Möglichkeit, es zu beschleunigen, als es als Hintergrundprozess auszuführen? Es scheint, als wäre dies kein normales Verhalten.

Ich benutze iOS7 und nenne weder viewWillappear noch viewDidAppear.

War es hilfreich?

Lösung

Es stellt sich heraus, dass dies nur ein Problem im Debug -Modus ist (wenn das iPhone angeschlossen ist und durch Xcode läuft). Sobald die gleiche App ausgeführt wird, ohne an Xcode verbunden zu sein, tritt die Verzögerung nicht auf.

Andere Tipps

Probieren Sie diesen iOS 12 aus

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

** Moderator ist YourViewController / Selbst

Versuche dies.

    - (void)viewDidLoad{

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

[super viewDidLoad];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top