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