0

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 enter image description here

Détail Voir enter image description here

Vue principale Encore une fois enter image description here

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!

Répondre

0

Utilisez le ci-dessous DetailViewController:

self.navigationController?.navigationBar.isHidden = true 

Au lieu de ceci:

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 

Et ajouter ceci MainViewController, viewWillAppear:

self.navigationController?.navigationBar.isHidden = false 
+0

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