简体   繁体   中英

navigationController.pushViewController doesn't seem to work in Xcode 11?

I have created a basic single view application. Using Xcode 11 now. I always build apps programatically because the tutorials I have started with never use the interface builder. For some reason not able to get the pushViewController to work. Seems to work just fine in my other projects built using Xcode 10.

In App Delegate

class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        window = UIWindow()
        window?.makeKeyAndVisible()
        let nc = UINavigationController(rootViewController: ViewController())
        window?.rootViewController = nc

        return true
    }

In my viewController

@objc func handleChat(){
    print("Chat pressed")
    navigationController?.pushViewController(InboxViewController(), animated: true)
}

AppDelegate.swift

var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        let VC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController") as? ViewController
        var Nav: UINavigationController? = nil
        if let VC = VC {
            Nav = UINavigationController(rootViewController: VC)
        }
        window?.rootViewController = Nav
        return true
    }

Remove SceneDelegate.swift

Goto Info.plist

Remove Application Scene Manifest

It's work for me.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM