查看控制器在Segue之后调整大小

时间:2017-05-08 17:57:03

标签: swift uinavigationcontroller uistoryboardsegue

我似乎无法为此找到合适的解决方案。在推送(通过Segue或代码)到新的VC时,我遇到了一个大小调整问题。我有以下内容:

Tab1:VenueTableVC - > VenueDetailVC - > CocktailDetailVC

Tab2:CocktailTableVC - > CocktailDetailVC - > VenueDetailVC

Tab3:UserProfileVC - > VenueDetailVC

Tab4:CocktailSearchVC - > CocktailDetailVC - > VenueDetailVC

我使用带有segues或代码的故事板将相应的视图控制器推送到导航堆栈。除了Tab 2中的那个场景外,每个场景都运行良好。当从CocktailDetailVC转到VenueDetailVC时,VenueDetailVC的大小会降低。打印到控制台我可以看到相应的高度从ViewDidLoad上的该视图返回,但随后在ViewDidLayoutSubviews和ViewWillLayoutSubviews中打印减小的高度。有没有明显的东西我没有考虑?我尝试删除segues,从tableviewCell添加一个segue,从ViewController本身添加一个segue到另一个视图控制器,尝试用代码推送到视图控制器,仍然得到相同的结果。我尝试过的一件事就是:

self.view.frame.size.height = UIScreen.main.bounds.height
在VenueDetailVC的ViewWillLayoutSubviews中的

似乎可以工作,但是表格延伸通过了底部的标签栏。当我从其他标签转到该VC时,它可以正常工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我想出来了。它实际上影响了从CocktailTable开始的堆栈中所有VC的大小。我有一些代码删除底部导航栏行:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .any, barMetrics: .default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.isTranslucent = false
    self.navigationController?.navigationBar.backgroundColor = UIColor.white

从ViewWillAppear中取出它似乎全部都设置好了。

相关问题