0

MainViewControllerからDetailViewControllerへのpushViewControllerの問題があります。 MainViewControllerのナビゲーションバーは白ですが、DetailViewControllerのnavigationBar項目を白またはbackgrondColorに変更すると、MainViewControllerにも変更されます。 ITSはビューのように同じですが、ここでも enter image description heredetailNavigationBarを変更しますが、rootNavigationBarも変更します

私はプログラム的に私が書いているだけで、背景...

メインビュー enter image description here

詳細ビュー enter image description here

メインビューをプッシュしますアプリ(ストーリーボードなし)。

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

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

    return true 
} 

TabBarControllerはこれです:

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] 

} 

MainViewControllerのpushViewControllerコードは次のとおりです。

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

と私はDetailViewControllerに変更する唯一のものはこれです:

AppDelegateはこれです
// 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 
白からclearColorにMAINVIEWコントローラの変更でこのコードnavigationBarで

私はDetailViewControllerに移動し、MAINVIEWコントローラに戻る...

♂️

問題は何ですか?助けてください!

ありがとうございます! DetailViewController

答えて

0

使用以下:

これに代えて
self.navigationController?.navigationBar.isHidden = true 

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 

そしてMainViewControllerでこれを追加し、viewWillAppear:返信用

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

おかげで、しかし、ボタンDetailViewControllerは表示されません(navbarが隠されているため)、whメインビューに戻ると、上記の写真のようにnavbarが半透明に見えます... – rjgodoy

関連する問題