Ich habe eine einfache Watchkit-App, die eine seitenbasierte Navigation von 3 Interface-Controllern lädt. Das funktioniert gut, aber ich möchte dann eine Aktion auslösen, um die Seitensteuerung zu entfernen und im Wesentlichen zum ursprünglichen InterfaceController zurückzukehren, der beim Laden der App vorhanden war.
%Vor%Die seitenbasierte Navigation wird entfernt, die ursprüngliche Navigation wird nach einem kurzen Spinner geladen. Es funktioniert jedoch nicht ordnungsgemäß und ursprüngliche Aktionen führen zu diesem Fehler.
%Vor%Gibt es eine bessere Möglichkeit, den ursprünglichen InterfaceController sauber zu laden?
BEARBEITEN, 2/19
Es scheint, dass es auch andere Aktionen gibt, die diesen Fehler verursachen. Zum Beispiel, wenn Sie zu einem zweiten InterfaceController und dann popController zurückkommen, wird der Fehler oft angezeigt. Es bezieht sich immer auf einen zweiten Aufruf dieser Funktion.
%Vor%EDIT2, 3/18
Wie bereits erwähnt, ist dies zu 100% reproduzierbar, indem Sie den popController-Befehl "seguePush" ausführen und dann versuchen, "RootControllersWithNames" neu zu laden.
Wenn der seguePush / popController nicht vorher ausgeführt wird, funktionieren die reloadRootControllersWithNames einwandfrei.
Diese Situation scheint zusätzlich zu der multi- & gt; single-multi-Instanz dieses Fehlers zu sein.
Ich konnte meine Instanz dieses Problems lösen, indem ich popController nicht auf einem Pushed-View-Controller verwendete. Stattdessen benutze ich einen reloadRootControllersWithNames anstelle von popController.
Wie dies sowohl Push als auch Paging ermöglicht, über ein Beispiel:
Dies beseitigt den Fehler auf Kosten von nicht animierten popControllern und ermöglicht teilweises Schieben und Paging. Es würde jedoch keine komplexere Push-Navigation erlauben.
Es gibt möglicherweise eine bessere Methode, um zu einem Sub-Interface-Controller ohne Push-Aufruf zu navigieren, aber ich bin mir dessen noch nicht bewusst.
Das ist eigentlich kein Bug, denn laut Apple:
Sie können hierarchische und seitenbasierte Schnittstellenstile nicht kombinieren. Zur Entwurfszeit müssen Sie den Stil auswählen, der am besten zum Inhalt und Design Ihrer App passt.
Leider können wir hierarchische und seitenbasierte Navigationsmuster nicht in derselben Watch App kombinieren.
Nur eine von vielen Einschränkungen, mit denen wir bei der Entwicklung von Apps für Watch
umgehen müssenDies ist ein Fehler in WatchKit in Xcode 6.2 Beta 5. Bitte täuschen Sie das folgende Radar auf Apples Fehlermeldesystem , um die Priorität zu erhöhen, um dies zu beheben.
In der Zwischenzeit kann eine Problemumgehung, die ich gefunden habe, in den Entwicklerforen gefunden werden. Was Sie tun können, ist, einen Dummy-Schnittstellencontroller zu jedem einzelnen Schnittstellencontroller-Seitensatz hinzuzufügen, so dass Sie immer zwei haben. Dies wird den Fehler beheben, bis Apple den Fehler behoben hat (hoffentlich in Beta 6). Bitte dupe!
Keine oder die obigen Antworten funktionierten für mich. Dieses Problem begann, als ich die Symbolnamen für die App und den Namen der Watch-App änderte. Ich habe es so gelöst:
Offensichtlich werden all diese Dinge nicht automatisch aktualisiert, wenn Sie den Icon-Namen (Zielnamen) ändern und Sie müssen zu diesen Menüs gehen und sie öffnen, um sie manuell zu aktualisieren. Schande über Apple vielleicht?