当在swift5中按下特定按钮时,如何使用代码呈现tabBarViewController(在故事板中创建)



我有一个名为viewController的viewController,上面有一个按钮,我想在按下按钮时显示一个tabBarController(它已经包含两个viewController(,我想让它全屏显示我已经尝试了一个代码

let tabbar = (self.storyboard?.instantiateViewController(identifier: "TabBar") as? UITabBarController)       
tabbar!.modalPresentationStyle = .fullScreen
self.present(tabbar!, animated: true)

标识符实际上是我给故事板上的tabBar控制器的故事板id,这段代码确实有效,但当我按下触发该代码的按钮时,它可以正常工作,但是当我连接下一个构建中该选项卡控制器上的视图控制器的出口时,这些视图控制器(该选项卡上的控制器(似乎变黑了,我看不到我在故事板上设计的任何组件。我在控制台中也收到了这条消息

尝试呈现<Sample_App.TabViewController:0x7f8f5d847200>在<Sample_App.ViewController:0x7f8f5c607490>(来自<Sample_App.ViewController:0x7f8f5c607490>(,其视图不在窗口层次结构中。请给我一个解决方案,并解释一下这是我的故事板的快照

您可以尝试将一段从ViewController放到TabController

设置分段连接

现在放一个标识符。

设置分段ID

在第一个ViewController中添加一个func,并使用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)
}

这就是的实现

相关内容

  • 没有找到相关文章

最新更新