У меня есть несколько VC, встроенных в один контроллер NavigationController. У меня есть один VC, давайте назовите его VCNotTransparent, что я хочу, чтобы панель была не прозрачной, а на других VC я хочу, чтобы она была прозрачной. Так в основном VC, я добавил эти строки для создания бар прозрачным:Swift - добавление навигационной панели, которая переопределяет существующую
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = true
Так что теперь все мои бары прозрачны в приложении. Как я могу сделать VCNotTransparent прозрачным без изменения всех других VC? одним из решений, о котором я думал, является добавление новой навигационной панели только в VCNotTransparent, но я не знаю, как это сделать.
EDIT
Я также попытался встраивание VCNotTransparent в своем собственном NavigationController, который работает почти, но проблема в том, что у меня есть навигация от него какой-либо другой ВК, и они не станут прозрачными, а также, так как они к югу навигации от VCNotTransparent.
спасибо, это выглядит как хорошее направление для решения, я ценю это. Одна вещь, которая отсутствует для меня, чтобы отметить как принятую, заключается в том, что я не понимаю, что будет для кода непрозрачным (внутри func setupNav ...). Поскольку я использовал пустой образ, чтобы сделать фон прозрачным, я не уверен, как вернуть его в непрозрачный. – Sharonica
Попробуйте это, возможно, это поможет вам - http://stackoverflow.com/questions/42332547/swift-3-how-to-reverse-a-transparent-navigation-bar –
Спасибо, это помогает немного, но у него есть проблема, возвращаясь к прозрачной панели из непрозрачной, панель становится прозрачной только в задержке (хотя я поместил изменения в правильные функции в жизненном цикле vc) – Sharonica