按下按钮时显示新的 ViewController 时如何显示 tabBarController
Posted
技术标签:
【中文标题】按下按钮时显示新的 ViewController 时如何显示 tabBarController【英文标题】:How to show tabBarController when presenting new ViewController when button is pressed 【发布时间】:2017-11-11 12:19:36 【问题描述】:我有一个activityfeedVC。如果用户单击 tableViewCell,则会显示 activityVC。在这个 VC 中,我有一个“返回”按钮。单击此按钮时,我想返回上一个视图控制器。我能够做到这一点,但我无法显示 tabBarController。我正在使用完成处理程序,但出了点问题。希望你能帮忙。
import UIKit
class activityVC: UIViewController
@IBAction func backBtnWasPressed(_ sender: Any)
// Navigates back
let feedVC = storyboard?.instantiateViewController(withIdentifier: "feedVC")
func completionHandler()
// show the tabBarController - NOT WORKING
feedVC?.tabBarController?.tabBar.isHidden = false
print("tabBarController shown")
present(feedVC!, animated: false, completion: completionHandler)
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
我想我应该使用 UINavigationBar 而不是我的客户导航...也许这更容易,即使我没有很多需要此功能的视图...
【问题讨论】:
当您设置值feedVC?.tabBarController?.tabBar.isHidden = false
时,如果其中任何一个为nil,您是否调试过
您的故事板中还有"feedVC"
tabBarController 或活动视图控制器。如果情节提要中可用,则需要链接到 TabBarController。另一种方法是关闭当前视图控制器,而不是在点击后退按钮时加载另一个视图控制器(如果它以模态方式呈现)
它没有以模态方式呈现,所以不起作用。 tabBarController 是在 CustomTabBarController 类中以编程方式创建的。你是说我应该展示 CustomTabBarController 而不是展示 UIViewController?
是的!否则 TabBarController 可能是 nil 可能是你没有看到它的原因。
【参考方案1】:
您是否将 activityVC 推送到视图控制器堆栈?如果是这样,您可以在用户点击后退按钮时简单地弹出 activityVC。
class activityVC: UIViewController
@IBAction func backBtnWasPressed(_ sender: Any)
self.navigationController?.popViewController(animated: false)
【讨论】:
以上是关于按下按钮时显示新的 ViewController 时如何显示 tabBarController的主要内容,如果未能解决你的问题,请参考以下文章
按下按钮时显示 ViewController,同时还存在 tabBar