我的应用有一个UIViewController
嵌入UINavigationController
。 UIViewController
里面有一个容器视图。我将此容器视图连接到UITableViewController
,从而将其嵌入到容器视图中。它一直很好,直到现在。
现在,当我使用故事板中的推送segue(我们仍然在导航视图中)将此UITableViewController
连接到新的UIViewController
时,新UIViewController
场景的大小变为与容器视图的相同。我想这是预期的,但是有一些方法可以避免这种情况发生。我希望剩下的场景处于正常大小。此外,它的工作非常好,并在模拟器中运行时的预期。尺寸问题只与故事板有关。
在这里解释我的控制器 - 查看层次结构:
UINavigationController
-> UIViewController ( Initial View Controller )
-> Container View
-> UITableViewController ( Embed Segue )
-> UIViewController ( Push Segue )
是否有任何方法可以使故事板中的最后UIViewController
和其余连接的控制器场景具有正常大小?
答案 0 :(得分:3)
以下是一种解决方案:从初始视图控制器创建手动segue到所需目标。这将防止故事板混淆并给目的地提供错误的大小(以及其他推断的指标)。不幸的是,因为它是一个手动视图控制器,你必须通过这样的方式从嵌入式视图控制器执行代码中的segue:
[self.parentViewController.parentViewController performSegueWithIdentifier:@"MySegue" sender:self];
答案 1 :(得分:0)
从Xcode 7开始(我不确定这是否适用于以前的版本):
Attributes Selector
中,Simulated Metrics
下的顶部有五个下拉菜单。
Size
设为Master
Status Bar
设为Default
Top Bar
设为Translucent Navigation Bar
UINavigationItem
拖到视图控制器上。这将为您提供正确大小的视图控制器和要编辑的导航栏。