当我切换到 TabBarController 内的另一个 ViewController 时,后退按钮不起作用

Back Button Doesn't Work When I switched to another ViewController inside of TabBarController

当我切换到 TabBarController 中的另一个 ViewController 并尝试返回时,后退按钮不起作用。

    override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let detailVC = NewDetailController()
    navigationController?.pushViewController(detailVC, animated: true)
    }

我认为问题出在我创建 detailVC 的方式上。但不确定出了什么问题。

正在创建 TabBarController:

class MainTabBarController: UITabBarController {

override func viewDidLoad() {
    super.viewDidLoad()

    // New View Controller

    let newController = NewController()
    let newNavController = UINavigationController(rootViewController: newController)

    viewControllers = [newNavController]
} }

在 AppDelegate 中将 UITabBarController 设置为初始值:

    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 mainVC = MainTabBarController()
    window?.rootViewController = UINavigationController(rootViewController: mainVC)

    return true
}

BackButton which doesn't work

在我将 UITabBarController 设置为我的 rootVC 之前一切正常。

PS:我没有使用故事板。一切都以编程方式完成。

哦好吧 感谢穆罕默德,他给了我一个关键点。

问题是我将我的 TabBarController 嵌入到 AppDelegate 中的 UINavigationController 中。

当我删除 UINavigationController 时一切正常!

    let mainVC = MainTabBarController()
    window?.rootViewController = mainVC