2015-03-27 15 views
10

Kiedy przedstawiam ekran modalny ze strony w nawigacji na stronie, cały ekran przesuwa się w górę, a pasek stanu nie jest już widoczny.
Oto gif emisji:

enter image description hereApple Watch: Pasek stanu nie jest widoczny po wyświetleniu modalnego ekranu z nawigacji po stronie.

Używam Xcode 6.2 wersję.
To nie działo się w kodzie XCode 6.2 Beta 4 ..
Nie jestem pewien, czy jest to problem symulatora, czy też będzie to rzeczywiście miało miejsce na prawdziwym urządzeniu.

Czy ktoś ma ten sam problem? Czy jest w pobliżu praca?

Zgłosiłem błąd do jabłka (20109240) i został oznaczony jako duplikat (19862945), a ten jest nadal otwarty.
góry dzięki

+1

Tylko uwaga, że ​​ten został naprawiony w Watch OS 1.0.1. –

Odpowiedz

7

Jest to znany problem w ostatecznej wersji, która wykazuje się w dwóch przypadkach:

  1. Prezentując drugi kontroler modalne (stronicowania lub pojedynczy) nad kontrolerem modalnej istniejący stronicowania
  2. Podczas prezentacji menu za pomocą Force Touch nad kontrolerem modulacji stronicowania

Zostało to omówione na forach programistów Apple, a jedynym rozwiązaniem, o którym słyszałem, jest to, którego używam w mojej aplikacji. Niestety, nie ma prostego kodu do rozwiązania, który rozwiązuje problem, więc opiszę podejście (które uważam za niechlujne, ale wykonalne).

Najpierw należy śledzić prezentacje kontrolera interfejsu. Mam na to ramkę, ale być może będziesz musiał przetasować własny. Gdy kontroler interfejsu potomnego ma swoje polecenie woluminu wywoływane dwa razy z rzędu (innymi słowy, bez wywoływania innego kontrolera interfejsu potomnego), można założyć, że modal został przedstawiony/odrzucony na nim.

Przedstawiciel/nadrzędny kontroler może następnie poinformować wszystkie dzieci, że wystąpił błąd w menu modalnym, a te kontrolery podrzędne mogą pokazać zastępczy pasek stanu za pomocą własnego przycisku Anuluj/Zamknij. Przy odrobinie pracy można odtworzyć wersję standardowego paska stanu o jakości pikseli z identycznym zachowaniem.

Ostatnim krokiem jest wykrycie, kiedy aplikacja Zegarek jest zawieszona, a następnie wznowienie. W takim przypadku willActivate jest również wywoływany dwa razy. Jeśli nie poradzisz sobie z tą sytuacją, w końcu odkryjesz pasek stanu wymiany i będziesz mieć jednocześnie dwa na ekranie. To nie jest świetny scenariusz.

Uzyskanie tego prawa jest bardzo trudne, ale działa. Chciałbym mieć prostą próbkę kodu, którą można wstrzyknąć.

Aktualizacja: I pchnął niektóre z moich kodu obejście GitHub:https://github.com/mikeswanson/JBInterfaceController

+0

Wielkie dzięki za rozwiązanie, powinno być prostsze w moim przypadku, ponieważ mam tylko jedno miejsce w aplikacji, w którym przesuwanie modalnego ekranu ze strony. Zasługujesz na moją nagrodę! –

+0

Jedno pytanie: Czy masz rozwiązanie, gdy odkrywasz menu (pasek stanu) i przewijasz strony? Nie chcę, aby menu było przewijane razem ze stroną. –

+0

Niestety, nie ma możliwości utworzenia regionu, który nie będzie przewijany ze strony na stronę. Każda strona będzie miała własny pasek statusu wymiany. –

Powiązane problemy