【发布时间】:2017-03-19 00:33:38
【问题描述】:
我有一个名为 PagingViewController 的 VC(它是一个带有分页 UIScrollView 的 UIViewController),它有 3 个子 VC,我们称它们为 VC-1、VC-2 和 VC-3。
我正在子 VC-1 内部进行网络调用,在此期间我想覆盖屏幕上的所有内容,包括父 PagingViewController。 我将如何以不违反 MVC 架构的方式执行此操作?我还应该为加载屏幕提供 UIView 或 UIViewController 以覆盖父级吗?
我尝试过使用UIWindow,但这似乎是一个 hack,但不确定是否是
更新 1
除了我上面提到的UIWindow,另一种从孩子那里遮住父母屏幕的方法是:self.parent.view.addSubview(myCustomView)。我担心的是孩子正在进入父母的观点并为其添加观点。这对我来说似乎违反了什么(我可能是错的)
【问题讨论】:
-
您正在描述一个完全普通的全屏呈现视图控制器。有什么问题?
-
@matt 我更新了我的问题。请注意我如何提到孩子正在进入父母以添加视图。在另一个例子中,我会伸手去拿 UIWindow,这对我来说似乎也是错误的。 (或者也许这两种方法都适用于 MVC)
-
如果我展示一个 VC 而不是一个 UIView,那么我认为这很简单,因为你只需执行
present.. (view controller).. 但是对于 UIView,很难展示一些内容你父母的看法也是如此 -
"但是对于 UIView,它也很难显示一些东西来覆盖你父母的视图" 问题是你不能交错来自不同视图控制器的视图。但是呈现的视图控制器的视图将覆盖所有内容,这正是您想要的,那为什么不是解决方案呢?
-
你什么都没解释。全屏呈现的视图控制器的视图将涵盖所有内容,其背后的任何内容都无法进行用户交互,问题已解决,完全标准,比 Fahim 提出的非法第二个窗口要好得多。
标签: ios objective-c swift uiview uiviewcontroller