J'ai un problème lors de la commande pushViewController de MainViewController à DetailViewController. Mon navigateurBar dans MainViewController est blanc mais quand je change les éléments de navigationBar dans DetailViewController en blanc ou backgrondColor pour effacer, il change aussi dans MainViewController. Son comme la vue est le même, mais que pousser l'arrière-plan ...Modifier detailNavigationBar mais modifie également rootNavigationBar
Vue principale Encore une fois
Je suis en train d'écrire mon programme application (sans storyboard). Le AppDelegate est la suivante:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
/********** Storyboard Config **********/
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
window?.rootViewController = TabBarController()
return true
}
Le TabBarController est la suivante:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
// Create Tab MainViewController
let mainNavigationController = MainViewController(collectionViewLayout: UICollectionViewFlowLayout())
mainNavigationController.title = "Main"
let mainController = UINavigationController(rootViewController: mainNavigationController)
mainController.title = "Main"
mainController.tabBarItem.image = UIImage(named: "UITabBarBookmarksTemplate")
mainController.tabBarItem.selectedImage = UIImage(named: "UITabBarBookmarksTemplateSelected")
// Create Tab UserViewController
let userNavigationController = UserViewController(collectionViewLayout: UICollectionViewFlowLayout())
userNavigationController.title = ""
let userController = UINavigationController(rootViewController: userNavigationController)
userController.title = "Profile"
userController.tabBarItem.image = UIImage(named: "UITabBarContactsTemplate")
userController.tabBarItem.selectedImage = UIImage(named: "UITabBarContactsTemplateSelected")
viewControllers = [mainController, userController]
}
Le code pushViewController de MainViewController est:
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let layout = UICollectionViewFlowLayout()
let controller = DetailViewController(collectionViewLayout: layout)
controller.data = cloudDatas?[indexPath.item]
navigationController?.pushViewController(controller, animated: true)
}
Et la seule chose que je change en DetailViewController est la suivante:
// Translucent Navigation Bar
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.backgroundColor = UIColor.clear
self.navigationController?.navigationBar.tintColor = UIColor.white
Avec ce code les navigationBar dans les changements de contrôleur MainView du blanc au clearColor lorsque je navigue à DetailViewController et revenir à MainView Controller ...
♂️
Quel est le problème ?? S'il vous plaît aider!
Merci!
Merci pour la réponse, mais le boutons il DetailViewController n'apparaît pas (parce que la barre de navigation est cachée) et wh fr retour à MainView la barre de navigation semble translucide aussi comme les images ci-dessus ... – rjgodoy