我创建了一个带有4个UIViewControllers的TabBarController。但是,当我想在TabBarController中显示一个ViewControllers:
func gotoMainAppVC()
{
let mainVC:SearchVC = SearchVC()
self.present(mainVC, animated: true, completion: nil)
}
我只得到一个普通的黑屏。我做错了什么?
答案 0 :(得分:0)
这不是任何一种方法。
我不确定你的上下文中有self
但我希望它是标签栏控制器或标签栏上的一个视图控制器。
通过调用present
,这意味着您希望在当前视图控制器上显示视图控制器,默认情况下会从下向上显示新的全屏视图控制器。
由于您通过调用SearchVC()
创建了一个新的视图控制器实例,因此这不是您在故事板中看到的视图控制器。您可以创建任何视图控制器的任何实例,但在您的情况下,如果您在故事板中设计了SearchVC
,则您希望实际使用该版本。为此,您需要在故事板中设置storyboard id。完成后,您应该将其初始化为使用:
UIStoryboard(name: <#T##String#>, bundle: nil).instantiateViewController(withIdentifier: <#T##String#>)
,如
let mainVC:SearchVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "TheIDIHaveSet") as! SearchVC
但是,这不会为您提供标签栏内的视图控制器,但会创建一个新实例。并且它不会作为其中一个选项卡进行操作,而是提供一个新的全屏视图控制器。