iOS TabBarController仅显示黑屏

时间:2018-03-16 12:28:31

标签: ios swift uiviewcontroller uitabbarcontroller

我创建了一个带有4个UIViewControllers的TabBarController。但是,当我想在TabBarController中显示一个ViewControllers:

func gotoMainAppVC()
{
    let mainVC:SearchVC = SearchVC()
    self.present(mainVC, animated: true, completion:  nil)
}

我只得到一个普通的黑屏。我做错了什么?

1 个答案:

答案 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

但是,这不会为您提供标签栏内的视图控制器,但会创建一个新实例。并且它不会作为其中一个选项卡进行操作,而是提供一个新的全屏视图控制器。