我的根视图控制器是一个UtiAbbarController.我试图在一个选项卡栏控制器的视图控制器上展示一个模态视图控制器,但仍然允许使用选项卡栏转到另一个选项卡——换句话说,我希望模态只中断该特定选项卡的流程,而不是整个应用程序.

为此,我在故事板中将presenting view控制器的演示样式设置为"Over Current Context".我遇到的问题是,在呈现模式视图控制器并 Select 新选项卡后,呈现视图控制器的视图将从窗口中删除,并且在解除呈现视图控制器时不会添加回窗口.关闭视图控制器后,移动到另一个选项卡,然后返回,最后将显示的视图控制器放回窗口.

我用Xcode中的"选项卡式"模板重现了我的问题.

在呈现模式之后——我向呈现的视图控制器添加了透明度,以便轻松查看呈现的视图控制器中发生了什么.

切换到第二个选项卡,然后返回-显示视图控制器的视图现在已被删除.

取消模式会使呈现视图控制器的视图仍然从窗口中移除.转到选项卡2并返回将视图添加回窗口.

我希望这是我在故事板中忽略的一件简单的事情,但事实上,在更改选项卡之前,我可以显示模式并查看其背后显示的视图控制器,这让我认为我已经正确设置了内容.

推荐答案

我也遇到了同样的问题,在演示模式VC之前,我在演示视图控制器上设置了self.definesPresentationContext = YES;,从而解决了这个问题.您也可以在故事板中设置此选项,该复选框在Interface Builder中称为"定义上下文".

Objective-c相关问答推荐

Objective C 中的 RSA 实现

iOS9 - 这个应用程序正在从后台线程修改自动布局引擎 - 在哪里?

核心数据独特属性

我需要在 ARC 中使用 dealloc 方法吗?

用 UIActivityIndi​​catorView 替换 UIBarButtonItem

使用 arc4random() 时如何 Select 值的范围

防止其他程序员调用 -init 的最佳方法

XCTAssert 和 XCTAssertTrue 有什么区别?

如何使用键值编码判断对象是否存在键?

如何将 UISlider 垂直放置?

来自 NSString 的 NSJSONSerialization

如何获得本地化的 Cancel、Done 等?

设置数据后调整 UICollectionView 单元格的大小

使用 DatePicker 展开和折叠 UITableViewCells

添加自定义 initWith?

如何禁用 UIButton?

从 NSRange 创建 UITextRange

所有异常断点在模拟器上无缘无故停止

Xcode中私有方法的单元测试

未调用 cellForItemAtIndexPath 但 numberOfItemsInSection 调用