向您展示图纸然后解释会更容易。
信息中心故事板
我有2个单独的UIViewControllers
(我在图中只包含一个,另一个不相关)嵌入在名为ContainerViewController
的容器视图中。
发布故事板
NewPostViewController
显示UIButton
,显示TextPostViewController
。如您所见,所有这些都嵌入在UINavigationControllers
中。现在,一旦调用新帖子的完成块,我必须呈现ContainerViewController
并且它需要处理它自己的逻辑。问题是它已嵌入UINavigationController
中,一旦我出现,UITaBbar
就会被隐藏。
我试着这样做:
self.performSegue(withIdentifier: "TextPostToNavContainerVC", sender: nil)
转换成功但我失去了UITabBar,即使在DashboardViewController
和ContainerViewController
我打电话:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
tabBarController?.tabBar.isHidden = false
}
我做错了什么或者有更好的方法吗?
答案 0 :(得分:1)
您应该实例化标签栏控制器。不是视图控制器。 想象一下,您将初始视图控制器放在标签栏控制器之前。使标签栏不被推送
如果我没有正确理解它。 你这样做 但实际上你应该这样做Segue connect to a view controller
答案 1 :(得分:0)
您可以尝试将其添加为儿童,以便像这样控制它的框架
let textPost = self.storyboard?.instantiateViewController(withIdentifier: "containerID") as! TextPostToNavContainerVC
textPost.view.frame = CGRect(x:20,y:0,width:self.view.frame.width,height:self.view.frame.height-50)
self.view.addSubview(nvc.view)
self.addChildViewController(textPost)
textPost.didMove(toParentViewController: self)