Swift:手势不会带回 TabBar

Swift: Gesturing doesn't bring back the TabBar

我正在尝试使用手势从 ViewController(简单文本页面)返回到底部带有 TabBar 的主要 ViewController。

手势与我 return 到原始主屏幕一样有效,但没有 TabBar。

在简单的 ViewController 中,我使用此代码返回原始 ViewController。

@objc func respondToSwipeGesture(gesture: UIGestureRecognizer) {
    if let swipeGesture = gesture as? UISwipeGestureRecognizer {
        switch swipeGesture.direction {
        case UISwipeGestureRecognizerDirection.right:
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let controller = storyboard.instantiateViewController(withIdentifier: "AboutViewControllerID")
            self.present(controller, animated: true, completion: nil)
            if let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "AboutViewControllerID") as? AboutViewController
            {
                present(vc, animated: true, completion: nil)
            }
        default:
            break
        }
    }
}

在使用 TabBarController 的 ViewController 中,我尝试了以下几行来使 TabBarController 恢复活力,但没有任何乐趣。

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(true)
    tabBarController?.tabBar.isHidden = false
     NSLog("TabBar true")
}

有什么想法吗?

首先,如果您想返回,请不要使用 present,因为它会在堆栈中添加相同的 VCS 两次,您必须使用 unwindSegue/dismiss,或者使用 id[=12 加载 tabBar 本身=]

self.dismiss(animated: true) {

     // use this if it's not directly behind the dismissed VC
     let tab = storyboard.instantiateViewController(withIdentifier: "tabBarID") as! UITabBarController
     UIApplication.shared.keyWindow?.rootViewController = tab

}

//