Ich möchte eine Warnmeldung von viewDidLoad()
method von ViewController.m
anstelle von viewDidAppear()
method anzeigen.
Hier ist mein Code:
%Vor%und ich erhalte diesen Fehler:
Warnung: Versuch,
<UIAlertController: 0x7fbc58448960>
auf<ViewController: 0x7fbc585a09d0>
darzustellen, deren Ansicht nicht in der Fensterhierarchie enthalten ist!
OK, kein Fehler, das Problem ist, dass in viewDidLoad die Ansichtshierarchie nicht vollständig festgelegt ist. Wenn Sie viewDidAppear verwenden, wird die Hierarchie festgelegt.
Wenn Sie diese Warnung wirklich in viewDidLoad aufrufen möchten, können Sie dies tun, indem Sie Ihren Präsentationsaufruf in diesen GCD-Block einfügen, um eine leichte Verzögerung zu verursachen. Warten Sie auf die nächste Ausführungsschleife. es ist hässlich).
%Vor%Sie müssen einen Navigationscontroller einbetten und den Controller präsentieren
%Vor%ODER
%Vor%Swift 3 iOS 10, ich habe die Operationswarteschlange verwendet, um den Codeblock zu platzieren, der die Benutzeroberfläche auf den Hauptthread aktualisiert.
%Vor%Kurz gesagt, wir verwenden Async. Dadurch kann die Warnmeldung wie erwartet angezeigt werden (auch wenn wir in viewDidLoad () sind).
Tags und Links objective-c ios xcode uialertview