Questo è un problema noto nella versione finale che si presenta in due casi:
- Nel presentare un secondo controllore modale (paging o singola) su un controller modale paginazione esistente
- nel presentare un menu usando Forza tocco su un controller di paging modale
Questo è stato discusso in Apple Developer Forum, e l'unica soluzione che ho sentito parlare è uno che uso nella mia app. Sfortunatamente, non c'è un codice semplice da condividere che risolva il problema, quindi descriverò l'approccio (che considererei disordinato, ma funzionale).
Innanzitutto, è necessario tenere traccia delle presentazioni del controller di interfaccia. Ho una struttura per questo, ma potrebbe essere necessario eseguire il rollover. Quando un controller di interfaccia figlio ha il suo willActivate chiamato due volte di seguito (in altre parole, senza una chiamata a un controller di interfaccia figlio diverso), si può presumere che una modale sia stata presentata/ignorata su di essa.
Il controller di presentazione/genitore può quindi informare tutti i bambini che il bug del menu modale è avvenuto, e quei controller figlio possono mostrare una barra di stato sostitutiva con il proprio pulsante Annulla/Chiudi. Con un po 'di lavoro, è possibile ricreare una versione pixel-perfetta della barra di stato standard con un comportamento identico.
La svolta finale consiste nel rilevare quando l'app Watch è sospesa, quindi riprendere. In tal caso, willActivate viene anche chiamato due volte. Se non gestisci questa situazione, finirai per scoprire la barra di stato della sostituzione e ne avrai due sullo schermo contemporaneamente. Non è un grande scenario.
Ottenere questo diritto è molto difficile, ma funziona. Vorrei solo avere un semplice esempio di codice che potresti iniettare.
Update: ho spinto un po 'del mio codice soluzione alternativa per GitHub:https://github.com/mikeswanson/JBInterfaceController
fonte
2015-03-31 05:32:30
Solo una nota che questo è stato risolto in Guarda OS 1.0.1. –