Action Extension "Presenting view controllers on detached view controllers is discouraged"

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Action Extension "Presenting view controllers on detached view controllers is discouraged"

    Hallo,

    ich habe eine Action Extension die auf dem iPhone super funktioniert. Auf dem iPad sehe ich sofort nach dem die Extension angezeigt wurde "Presenting view controllers on detached view controllers is discouraged" in der Konsole. Auf einem echten iPad friert die Extension dann ein und im Simulator kann ich sie benutzen.

    Hat jemand eine Idee warum das passiert? Google konnte mir auch nicht helfen. Zwar ist diese Nachricht nicht unbekannt, jedoch war der Hintergrund immer unterschiedlich.
    Ich bin für jede Idee dankbar.

    VG,
    Florain
  • Ich konnte das Problem nun durch einen kleinen "Hack" lösen:
    • In viewWillAppear: des Root VC der Extension zeige ich meinen eigentlichen VC mit presentViewController:animated:completion: an. Dabei ist animated natürlich NO, damit der User den Schwindel nicht bemerkt.
    • Nun hatte ich das Problem, dass ich in meinem VC durch self.extensionContext nicht mehr an den Extension Context rangekommen bin. Also habe ich die property extensionContextProxy zu meinem VC hinzugefügt und leite den Extension Context so weiter. Dann habe ich -extensionContext meines VC überschrieben und gebe immer extensionContextProxy zurück.
    Ich hoffe das hilft vielleicht jemanden der in die selbe Situation kommt.

    EDIT:
    Bevor jemand den selben Fehler wie ich macht: einen View Controller in viewWillAppear: anzuzeigen ist keine gute Idee. Es gibt eine bessere Lösung, die einem auch den zweiten oben genannten Punkt erspart: In viewDidLoad einfach den eigentlichen VC als Child VC hinzufügen. Dadurch kommt man im VC durch self.extensionContext auch an den Extension Context ran.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von floschliep ()