2017-07-13 15 views
0

私はプログラムで異なるビューコントローラを作成しようとしていますが、最初にnavbarを表示しないようにしてください。私はnavbarを表示するために2番目のView Controllerを取得するために何もしていないようです。 2番目の画面が緑色に変わるため、すべてのコードが正常にコンパイルされ、コントローラを押すボタンが機能します。ここでsetNavigationBarHiddenはプログラムによって動作していませんか?

はAppDelegateである:ここでは

class AppDelegate: UIResponder, UIApplicationDelegate { 

var window: UIWindow? 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    // Override point for customization after application launch. 

    window = UIWindow(frame: UIScreen.main.bounds) 
    window?.makeKeyAndVisible() 

    let layout = UICollectionViewFlowLayout() 
    let startupScreenController = StartupScreenController(collectionViewLayout: layout) 
    window?.rootViewController = UINavigationController(rootViewController: startupScreenController) 

    application.statusBarStyle = .lightContent 

    return true 
} 

は、最初のビューコントローラである:ここで

func skipButtonPressed() { 

    let layout = UICollectionViewFlowLayout() 
    let secondViewController = SecondViewController(collectionViewLayout: layout) 
    self.navigationController?.pushViewController(secondViewController, animated: true) 

} 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    // Hide the navigation bar on this view controller 
    self.navigationController?.setNavigationBarHidden(true, animated: animated) 
} 

は、第二のビューコントローラです:

class SecondViewController: UICollectionViewController { 

override func viewWillDisappear(_ animated: Bool) { 
    super.viewWillDisappear(animated) 

    // Show the Navigation Bar on this view controller 

    self.navigationController?.setNavigationBarHidden(false, animated: animated) 
    UINavigationBar.appearance().barTintColor = UIColor(red: 24/255, green: 24/255, blue: 24/255, alpha: 1 ) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    collectionView?.backgroundColor = UIColor.green 

} 

答えて

0

以下のようにする必要があります。

 func viewDidLoad() { 
      super.viewDidLoad() 
      self.navigationController?.setNavigationBarHidden(false, animated: animated) 
     } 
+0

ああ私はとても馬鹿です。もちろん。ありがとうたくさん... –

+0

Ahhaaa: - ] @unicorn_surprise –

+0

'super.viewDidLoad()'を追加するのを忘れないでください – Bilal

0

直接あなたがそれに使用することができますViewDidLoadのナビゲーションバーコード。

override func viewDidLoad() { 

    self.navigationController?.setNavigationBarHidden(false, animated: 
    animated) 
    } 
0

navigation barを次のように非表示にします。 を有効にするには

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationController?.navigationBar.isHidden = true 
} 
関連する問題