0

Ich habe ein Problem, wenn pushViewController von MainViewController zu DetailViewController. Meine navigationBar in MainViewController ist weiß, aber wenn ich die navigationBar Elemente in DetailViewController weiß oder backgrondColor zu löschen, ändert sich auch in MainViewController. Es ist wie der Blick ist die gleiche, aber schieben nur der Hintergrund ...Modifiziere detailNavigationBar aber ändert auch rootNavigationBar

Hauptansicht enter image description here

Detailansicht enter image description here

Hauptansicht Wieder enter image description here

Ich schreibe programmatisch meine App (ohne Storyboard). Die AppDelegate ist dies:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

    /********** Storyboard Config **********/ 
    window = UIWindow(frame: UIScreen.main.bounds) 
    window?.makeKeyAndVisible() 
    window?.rootViewController = TabBarController() 

    return true 
} 

Die TabBarController ist dies:

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] 

} 

Der Pushviewcontroller Code von Mainviewcontroller ist:

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) 
} 

Und das einzige, was ich in DetailViewController ändern, ist dies:

// 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 

Mit diesem Code die navigationbar in Mainview-Controller ändert sich von weiß bis Clear, wenn ich zu DetailViewController navigieren und zurück zum Mainview-Controller ...

♂️

Was ist das Problem ?? Bitte helfen Sie!

Danke!

Antwort

0

Verwendung unter der in DetailViewController:

self.navigationController?.navigationBar.isHidden = true 

Statt dessen:

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 

und fügen Sie diese in MainViewController, viewWillAppear:

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

Danke für die Antwort, aber die Knöpfe es DetailViewController erscheint nicht (weil die Navbar ausgeblendet ist) und wh de zurück zur MainView sieht die Navbar wie die Bilder oben durchscheinend aus ... – rjgodoy

Verwandte Themen