2015-04-21 25 views
5

Rozważmy następującą konfigurację:iOS 8.3 modalPresentationStyle OverCurrentContext nie dziedziczy stanu wygląd bar i widoczność

  • Masz prostą aplikację z jednym UINavigationController podklasy i pojedynczym UIViewController podklasy w nim.
  • UINavigationController zastępuje preferredStatusBarStyle() sposób i zwraca UIStatusBarStyle.LightContent
  • UIViewController zastępuje prefersStatusBarHidden() sposób i zwraca true

w iOS 8.0 - 8.2, gdy inny UINavigationController (z innym UIViewController że nic nie uruchomienie) przedstawiono z modalPresentationStyle ustawiona na UIModalPresentationStyle.OverCurrentContext, nowo przedstawiony kontroler dziedziczy wygląd i widoczność paska stanu.

Ale w iOS 8.3 w dokładnie takiej samej sytuacji - nowo przedstawiony sterownik nie dziedziczy wygląd paska stanu i widoczności

Innym przykładem byłoby zaprezentować wystąpienie UIImagePickerController - dokładnie to samo dzieje się w sprawie statusu wygląd paska.

Pytania są:

  • Dlaczego w iOS 8.3 nowo przedstawiony sterownik nie odziedziczyć wygląd paska stanu?
  • Co zostało zmienione (nie udało mi się znaleźć żadnego istotnego odniesienia w zakresie interfejsu API dla iOS 8.2 do 8.3 w związku z tym)?
  • Czy istnieje jakieś eleganckie rozwiązanie tego problemu, zamiast przesłonić wszędzie wygląd i metody widoczności?

Odpowiedz

5

Spróbuj tego:

(viewControllerToBePresented).modalPresentationCapturesStatusBarAppearance = true 
+0

ta nie ma wpływu na iOS 8.3+ lecz czyni iOS 8.2- zachowywać się w sposób, jak problematyczne iOS 8.3+ – KoCMoHaBTa