从嵌入在容器视图中的视图控制器中分离
Posted
技术标签:
【中文标题】从嵌入在容器视图中的视图控制器中分离【英文标题】:Segue from the view controller embedded in a container view 【发布时间】:2014-03-31 05:47:35 【问题描述】:我的应用程序有一个UIViewController
,它嵌入在UINavigationController
中。 UIViewController
里面有一个容器视图。我将此容器视图连接到UITableViewController
,从而将其嵌入到容器视图中。到现在都还好。
现在,当我使用情节提要中的 push segue(我们仍在导航视图中)将此 UITableViewController
连接到新的 UIViewController
时,新的 UIViewController
场景的大小与容器的大小相同看法。我想这是意料之中的,但有什么方法可以避免这种情况发生。我希望其余场景保持正常大小。此外,它在模拟器中运行时工作得非常好并且符合预期。大小问题仅与情节提要有关。
只是解释我的控制器 - 在这里查看层次结构:
UINavigationController
-> UIViewController ( Initial View Controller )
-> Container View
-> UITableViewController ( Embed Segue )
-> UIViewController ( Push Segue )
有什么方法可以让最后一个UIViewController
和其余连接的控制器场景在情节提要中保持正常大小?
【问题讨论】:
所以问题只是在查看情节提要时?视图控制器有一个“模拟指标”大小选项(默认情况下是推断的)。你试过改变吗? 我遇到了相反的问题。我希望我的 segue 视图适合它所在容器的大小! 【参考方案1】:这里有一个解决方案:从初始视图控制器创建手动转场到所需的目的地。这将防止故事板混淆并给目的地错误的大小(和其他推断的指标)。不幸的是,因为它是一个手动视图控制器,您必须通过执行以下操作从嵌入式视图控制器的代码中执行 segue:
[self.parentViewController.parentViewController performSegueWithIdentifier:@"MySegue" sender:self];
【讨论】:
【参考方案2】:从 Xcode 7 开始(我不确定这是否适用于以前的版本):
-
选择嵌入在容器视图中的视图控制器。
在
Attributes Selector
中,Simulated Metrics
下方的顶部有五个下拉菜单。
将Size
设置为Master
将Status Bar
设置为Default
将Top Bar
设置为Translucent Navigation Bar
现在将UINavigationItem
拖到您的视图控制器上。
这将为您提供大小正确的视图控制器和一个可供编辑的导航栏。
【讨论】:
以上是关于从嵌入在容器视图中的视图控制器中分离的主要内容,如果未能解决你的问题,请参考以下文章