在我的项目中,我想在按钮点击时显示Tabbar,现在我已经创建了tabbar,我将身份名称作为“tabbar”,我在下面的图像中显示
所以现在我使用下面的代码调用Tab栏控制器,但我没有得到它。
let tabbar: UITabBarController? = (storyboard.instantiateViewController(withIdentifier: "tabbar") as? UITabBarController)
navigationController?.pushViewController(tabbar, animated: true)
你们可以告诉我我需要做什么以及哪些代码对我提供Tabbar控制器很有用。
更多规格:我在下面的图片中添加了一个viewController中有蓝色按钮我想在点击蓝色按钮时显示标签栏控制器
谢谢。
答案 0 :(得分:2)
试试看,看看:
使用Storyboard Segue:使用操作按钮以模态方式将segue连接。
以编程方式:使用视图控制器(UIViewController)的self
并以模态方式呈现它,就像这样。
if let tabbar = (storyboard.instantiateViewController(withIdentifier: "tabbar") as? UITabBarController) {
self.present(tabbar, animated: true, completion: nil)
}
结果如下:
答案 1 :(得分:1)
使用这个,你没有那里的导航控制器,这就是为什么它不会推动那样,相反,你需要使用以下代码:
self.present(tabbar, animated: true, completion: nil)
答案 2 :(得分:0)
你应该知道Apple的HIG(人机接口指南)说如果你有一个标签式应用程序应该是整个应用程序的根级导航。你不应该从人机界面的角度做你想做的事。
那说,技术上应该是可能的。
我的猜测是你没有导航控制器。
使用调试器检查self.navigationController
的值,或添加打印语句:
let tabbar: UITabBarController? = (storyboard.instantiateViewController(withIdentifier: "tabbar") as? UITabBarController)
print("navigationController = \(navigationController)")
print("tabbar = \(tabbar)")
navigationController?.pushViewController(tabbar, animated: true)
如果navigationController
或tabbar
显示为nil,那就是您的问题。
答案 3 :(得分:0)
选择触发按钮单击的viewController,然后选择编辑器表格xcode menu-> Embed In-> NavigationController。
然后在按钮操作中写下
let tabbar: UITabBarController? = (self.storyboard?.instantiateViewController(withIdentifier: "tabbar") as? UITabBarController)
self.navigationController?.pushViewController(tabbar!, animated: true)
答案 4 :(得分:0)
根据你的图片,我认为你的tabBarController没有后退按钮。意味着用户无法回头。
如果是这种情况,你可以这样做。
let tabBar = self.storyboard?.instantiateViewController(withIdentifier: "tabBar")
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window?.rootViewController = tabBar