私はプログラムで異なるビューコントローラを作成しようとしていますが、最初に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
}
ああ私はとても馬鹿です。もちろん。ありがとうたくさん... –
Ahhaaa: - ] @unicorn_surprise –
'super.viewDidLoad()'を追加するのを忘れないでください – Bilal