如何在 swift5 中按下特定按钮时使用代码呈现 tabBarViewController(在情节提要中创建)?
how to present a tabBarViewController(created in storyboard) using code when pressed a particular button in swift5?
我有一个名为 ViewController 的 viewController,上面有一个按钮,我想在按下按钮时显示一个 tabBarController(它已经包含两个 viewController)我想要它全屏我试过一个代码
let tabbar = (self.storyboard?.instantiateViewController(identifier: "TabBar") as? UITabBarController)
tabbar!.modalPresentationStyle = .fullScreen
self.present(tabbar!, animated: true)
identifier其实就是我在storyboard上给tabBar Controller的storyboard id,
这段代码确实有效,但是当我按下触发该代码的按钮时,它工作正常但是当我在下一个版本中连接该 tabBar 控制器上存在的 viewControllers 的出口时,那些 Viewcontrollers(那些在该 taBbar 上的)似乎变黑,我无法看到我在故事板上设计的任何组件而且我还在控制台中收到此消息
尝试在 上呈现 (来自 ),其视图不在 window等级制度。
请给我一个解决方案和一些解释
here is the snapshot of my story board
您可以尝试从 ViewController 到 TabController
Set the segue connection
现在放一个标识符。
Set the segue ID
在您的第一个 ViewController 中添加一个函数,并使用 segue 标识符移动到另一个视图。
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "yourSegueID" {
let tabBarController = segue.destination as! UITabBarController
tabBarController.title = "TabBarController"
}
}
然后添加一个按钮动作来调用这一行
@IBAction func infoMessage(_ sender: UIButton) {
performSegue(withIdentifier: "yourSegueID", sender: nil)
}
This is the implementation
我有一个名为 ViewController 的 viewController,上面有一个按钮,我想在按下按钮时显示一个 tabBarController(它已经包含两个 viewController)我想要它全屏我试过一个代码
let tabbar = (self.storyboard?.instantiateViewController(identifier: "TabBar") as? UITabBarController)
tabbar!.modalPresentationStyle = .fullScreen
self.present(tabbar!, animated: true)
identifier其实就是我在storyboard上给tabBar Controller的storyboard id, 这段代码确实有效,但是当我按下触发该代码的按钮时,它工作正常但是当我在下一个版本中连接该 tabBar 控制器上存在的 viewControllers 的出口时,那些 Viewcontrollers(那些在该 taBbar 上的)似乎变黑,我无法看到我在故事板上设计的任何组件而且我还在控制台中收到此消息
尝试在
您可以尝试从 ViewController 到 TabController
Set the segue connection
现在放一个标识符。
Set the segue ID
在您的第一个 ViewController 中添加一个函数,并使用 segue 标识符移动到另一个视图。
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "yourSegueID" {
let tabBarController = segue.destination as! UITabBarController
tabBarController.title = "TabBarController"
}
}
然后添加一个按钮动作来调用这一行
@IBAction func infoMessage(_ sender: UIButton) {
performSegue(withIdentifier: "yourSegueID", sender: nil)
}
This is the implementation