2017-04-19 7 views
0

Ich erstelle eine Workout-Tracking-App und um zwischen View-Controller zu wechseln verwende ich WKInterfaceController.reloadRootControllers(withNames:contexts:), um einen einzigen Controller zu laden, der in awake(withContext:) einige Elemente versteckt und zeigt den Text in einigen Etiketten . Kein Problem, aber manchmal ist die Ansicht nicht richtig geladen und scheint ein wenig nach links verschoben zu sein und vertikal gestreckt zu werden, um einen Teil des Textes zu beschneiden: wie in den Screenshots unten links zu sehen ist sowie die Unterseite der NäCHSTE fehlt: ... und die grünen Taste ist nicht zentriert:Apple Watch Interface merkwürdig beschnitten/verschoben

enter image description here enter image description here

ich habe versucht, das Updates zu der Ansicht zu verzögern, indem Sie den Code über DispatchQueue.main.async { ... } Aufruf aber das tut leider nichts und der einzige Weg, das Problem zu beheben, ist zu beenden nate und relaunch der App, aber da dies nicht von der Uhr möglich ist, muss ich es deinstallieren und neu installieren, sogar das erneute Laden der Root-Controller hilft nicht (der zweite Screenshot ist nach dem Neuladen). Jemand hat eine Idee, warum das passiert?

Project on GitHub, der Controller mit diesem Problem ist ExecuteWorkoutInterfaceController in ExecuteWorkoutIC.swift.

Antwort

0

Sie sollten Ihr Storyboard Layout überprüfen und vielleicht auch nicht WKInterfaceController.reloadRootControllers verwenden und haben nur eine Methode, die Elemente versteckt und zeigt.

+0

Das Nachladen des Root-Controllers funktioniert gut und wird benötigt, da ich die Hierarchie der Interface-Controller ändern muss. Ich möchte hinzufügen, dass das Problem nur auftritt, wenn der Root-Controller neu geladen wird, nachdem die App nach einem Absturz neu gestartet wurde –