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
}
//
我正在尝试使用手势从 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
}
//