Präsentieren UIWebview oben auf die aktuell angezeigte view-controller

Ich versuche, Modal anzeigen einer UIWebview oben der aktuell angezeigte view-controller. Der code für popup-webview Leben in einer statischen Bibliothek und hat keine Ahnung über die view-controller Hierarchie der app, in der es lebt. Der code unten funktioniert für meine test-Fällen, aber nicht sicher, ob es funktionieren würde für alle möglich-view-controller-Hierarchien.

UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
UIViewController *presentedVC = [rootViewController presentedViewController];
if (presentedVC) {
    //We have a modally displayed viewcontroller on top of rootViewController.
    if (!presentedVC.isBeingPresented) {
    [presentedVC presentViewController:vc animated:YES completion:^{
        //
    }];
} else {
    rootViewController presentViewController:vc animated:YES completion:^{
        //
    }];
}

Macht die presentedViewController geben immer die aktuell sichtbare Ansicht-controller?

  • Hm, wenn das funktioniert-Id überrascht sein. Es sei denn, ich bin wahnsinnig zu werden, die keyWindow gibt die aktuell sichtbare Fenster, das zuletzt aufgerufen wurde, um makeKeyAndVisisble. Um die aktuelle vorgestellt view-controller es hängt alles von Ihrer Hierarchie. Wenn Sie ein modales Bildschirm, das ist es, wenn nicht und Sie haben nav-controller als root-youll haben, sich an der Spitze des stack. Ich denke, es wird ziemlich schwer zu finden Sie die top-view-controller so viele Möglichkeiten zum einrichten der navigation Layer..
  • Ich denke, Sie werden wollen, übergeben Sie die aktuelle view-controller als eine Eigenschaft, um Ihre Bibliothek.
  • Das ist definitiv eine option, aber ich habe versucht, dieses transparent für den Entwickler die Verwendung der statischen Bibliothek.
  • Ich Hinzugefügt eine überprüfung für presentedVC als null. Wie es scheint, presentedVC ist immer null, wenn es keine Modal angezeigt-view-controller auf der Oberseite der rootViewController.
InformationsquelleAutor pshah | 2013-07-25
Schreibe einen Kommentar