从嵌入在容器视图中的视图控制器中查看

时间:2014-03-31 05:47:36

标签: ios objective-c xcode-storyboard

我的应用有一个UIViewController嵌入UINavigationControllerUIViewController里面有一个容器视图。我将此容器视图连接到UITableViewController,从而将其嵌入到容器视图中。它一直很好,直到现在。

现在,当我使用故事板中的推送segue(我们仍然在导航视图中)将此UITableViewController连接到新的UIViewController时,新UIViewController场景的大小变为与容器视图的相同。我想这是预期的,但是有一些方法可以避免这种情况发生。我希望剩下的场景处于正常大小。此外,它的工作非常好,并在模拟器中运行时的预期。尺寸问题只与故事板有关。

在这里解释我的控制器 - 查看层次结构:

UINavigationController 
  -> UIViewController ( Initial View Controller )
    -> Container View 
      -> UITableViewController ( Embed Segue ) 
        -> UIViewController ( Push Segue ) 

是否有任何方法可以使故事板中的最后UIViewController和其余连接的控制器场景具有正常大小?

2 个答案:

答案 0 :(得分:3)

以下是一种解决方案:从初始视图控制器创建手动segue到所需目标。这将防止故事板混淆并给目的地提供错误的大小(以及其他推断的指标)。不幸的是,因为它是一个手动视图控制器,你必须通过这样的方式从嵌入式视图控制器执行代码中的segue:

[self.parentViewController.parentViewController performSegueWithIdentifier:@"MySegue" sender:self];

答案 1 :(得分:0)

从Xcode 7开始(我不确定这是否适用于以前的版本):

  1. 选择嵌入容器视图中的视图控制器。
  2. Attributes Selector中,Simulated Metrics下的顶部有五个下拉菜单。
    • Size设为Master
    • Status Bar设为Default
    • Top Bar设为Translucent Navigation Bar
  3. 现在将UINavigationItem拖到视图控制器上。
  4. 这将为您提供正确大小的视图控制器和要编辑的导航栏。