从容器视图呈现视图控制器

Posted

技术标签:

【中文标题】从容器视图呈现视图控制器【英文标题】:Present a view controller from a container view 【发布时间】:2015-10-24 12:50:30 【问题描述】:

我用一个容器构建了一个UIViewController,一个嵌入另一个 UIViewController 的视图(我将其称为 subViewController)。 我希望 subViewController 在其容器视图画布中呈现它自己的另一个实例(并非适用于所有屏幕)。

我用prepareForSegue 方法试过这个 用这个方法

-(void)showFurtherReadingDetails

    [self performSegueWithIdentifier:@"ShowArticleDetails" sender:self];

注意showFurtherReadingDetails 方法是 subVC over 的委托方法,在 supperVC 中初始化。 但我遇到了这个问题:

'NSInternalInconsistencyException',原因:'有意外 容器视图中的子视图。也许嵌入 segue 已经 触发一次或以编程方式添加子视图?

请看附图

【问题讨论】:

你如何呈现“它的另一个实例”?请提供您的代码。 我已经更新了问题 【参考方案1】:

如果你的 UIViewController 没有嵌入 UINavigationController 那么你就不能执行 Push。

您需要做的是,在您的 subVC 中嵌入导航控制器,然后从 subVC 推送新的视图控制器,它将处于容器视图中并且不会全屏。

为了您的方便,我附上了故事板的截图,以便您更好地理解。希望它会有所帮助。

【讨论】:

以上是关于从容器视图呈现视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如果从过流上下文视图控制器呈现,则呈现视图控制器错误

无法在 UIPopoverController 中显示视图控制器

从模态视图呈现视图控制器给出错误

如何从模态视图控制器调用呈现视图控制器的方法

从视图控制器呈现导航视图 - IOS 7

如何将视图控制器从视图控制器推送为全屏幕,呈现为半模式