Заглавната лента на навигацията е неудобна, показва сив фон при връщане назад

Този gif ще ви помогне да разберете какъв е проблемът ми:

въведете описание на изображението тук

При някои от моите навигационни контролери никога преди не съм срещал този проблем и ми е трудно да отстранявам грешки в този проблем.

Стъпки за възпроизвеждане: Клонирайте https://github.com/Jasperav/GlitchedNavigationBar или

  1. Създайте нов проект
  2. Вградете съществуващия контролер за изглед в контролер на лента с раздели
  3. Вградете същия viewcontroller в контролер на лентата за навигация
  4. Добавете нов контролер за изглед в сценария
  5. В новия контролер за преглед докоснете Скриване на долната лента при натискане (Това причинява проблема)
  6. Добавете бутон в първия контролер за изглед, който ще покаже новия контролер за изглед. Сега имаме проблема.

Работя с Xcode 10 и swift 4.2


person J. Doe    schedule 27.09.2018    source източник
comment
Предполага се, че правите нещо необичайно с навигационната си лента - Подклас? Персонализиран фон? Нещо друго?   -  person Ashley Mills    schedule 29.09.2018
comment
@AshleyMills Добавих път за възпроизвеждане, не правя нищо странно, мисля...   -  person J. Doe    schedule 07.10.2018


Отговори (1)


Това се случва, защото вашата навигационна лента е полупрозрачна и показва част от вашия контролер под навигационната лента. Вашият горен контролер има карта в него и когато навигирате назад, той я анимира под лентата за навигация, което е причината за трептенето.

За да промените полупрозрачния ефект на лентата за навигация само в един контролер, трябва да добавите това към метода viewDidLoad:

navigationController?.navigationBar.isTranslucent = false

или ако искате да го промените глобално, добавете това към вашия метод didFinishLaunchingWithOptions в делегата на приложението:

UINavigationBar.appearance().isTranslucent = false
person Jakub Sanestrzik    schedule 07.10.2018