在不覆盖全屏的 UIViewController 中模态显示 UIViewController
Posted
技术标签:
【中文标题】在不覆盖全屏的 UIViewController 中模态显示 UIViewController【英文标题】:Present UIViewController modally within a UIViewController that does not cover full screen 【发布时间】:2012-04-11 18:12:58 【问题描述】:基本上,一旦我关闭模式视图,我的自定义 UIToolbar 就不再可点击。
这是我的设计:
屏幕底部的自定义 UIToolbar
屏幕顶部与容器视图控制器相关联 [注意] 我将上面的前两项添加到一个根视图控制器中,并分配给 UIWinow 的根视图控制器。每当单击工具栏项时,都可以更改容器视图。
然后,每个工具栏项都与一个 UINavigationController 关联,以便它可以导航。
在导航的 UIViewController 中,我以模态方式呈现视图。由于整个设计,模态视图不会覆盖全屏...
关闭模式视图后,UIToolbar 项目不再可点击。
我认为“错误”存在于我呈现模态视图的位置,所以我也尝试使用根视图控制器呈现模态视图,然后还有其他问题......
也许有人对此有更深入的了解,那将不胜感激:)
谢谢。
【问题讨论】:
【参考方案1】:在不再需要 modalViewController
时尝试释放它。如果您使用 ARC,请将其设置为 nil
。当需要 modalView 时分配一个新的。
【讨论】:
非常感谢。我正在模态控制器实现的方法中进行解除调用;当单击模态视图上的按钮时调用该方法。如果不使用委托从父级调用,我无法将 modalViewController 设置为 nil。 我终于修好了。在关闭模态视图控制器时,从 AppDelegate 获取根控制器,然后获取导航控制器并显示导航栏,因为它是隐藏的。 @nanshi 酷。太棒了:)以上是关于在不覆盖全屏的 UIViewController 中模态显示 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章
创建不占用全屏的 UIViewController 时,如何通过在外部点击来关闭它?
非全屏和全屏 UIViewController 之间的漂亮幻灯片过渡
PresentViewController 一个带有 UINavigationController 的非全屏 UIViewController