【问题标题】:Background UIViewController loading when ModalViewController is in the foreground (iOS)当 ModalViewController 在前台时加载后台 UIViewController (iOS)
【发布时间】:2011-10-27 01:45:23
【问题描述】:

我不确定为什么会发生这种情况,但在 App 委托中,我将 viewcontroller 设置为 root 并在其前面显示 ModalViewController。奇怪的是modalviewcontroller后面的viewcontroller虽然没有出现,但是还在加载。这是正常的吗?有没有办法阻止modalviewcontroller后面的viewcontroller加载?

谢谢

【问题讨论】:

    标签: objective-c ios cocoa-touch


    【解决方案1】:

    我不确定您所说的“加载”到底是什么意思。只要后台的视图控制器是模态视图控制器的父视图控制器,就需要在模态视图控制器完全显示之前对其进行初始化。从这个意义上说,它必须被加载。

    另一方面,如果您的意思是在视觉上显示背景视图控制器的内容,然后模型视图控制器出现在其顶部 - 但您不希望背景控制器的内容直到模态视图控制器被解除后才能看到——那么一种可能性是将hidden 属性设置为YES 并在模态视图控制器被解除时取消隐藏内容。为此,我将后台视图控制器设置为模态视图控制器的委托,因此当模态视图控制器关闭时它会收到回调。

    【讨论】:

    • 通过加载我的意思是 loadView 被调用(它不显示在视觉上)。因此,根据您的回答,这似乎是正常的。问题是我使用模态视图作为登录页面,它后面的视图控制器根据登录用户加载数据。由于数据加载是在加载视图时自动完成的,因此由于没有用户登录,它会崩溃。任何想法如何解决这个问题?
    • 将要加载到数据的代码移动到“更新”方法中。在加载viewController时调用此更新方法之前检查用户是否已登录,以便应用程序在登录前尝试加载数据时不会崩溃。在后台视图控制器上创建一个回调方法,在登录时调用是成功的。在此回调返回方法中调用更新方法。
    • 谢谢,我希望有一种方法可以阻止视图加载,但即使有,它也会比其他任何方法都更复杂。非常感谢!
    猜你喜欢
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2014-02-04
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多