确定 viewWillAppear 来自打开应用程序,还是取消选择模式

Posted

技术标签:

【中文标题】确定 viewWillAppear 来自打开应用程序,还是取消选择模式【英文标题】:Determine is viewWillAppear comes from opening app, or deselecting modal 【发布时间】:2014-09-23 00:26:20 【问题描述】:

我目前正在初始屏幕上加载应用加载数据。这发生在我的观点WillAppear 中。我还有一个在此屏幕上弹出的模式,当关闭时执行在 viewWillAppear 中加载数据的相同逻辑。

如何只在应用打开时加载数据,而不是在模式关闭时加载?

【问题讨论】:

【参考方案1】:

UIViewController 提供了确定这一点的方法:

- (void)viewWillAppear:(BOOL)animated 
    [super viewWillAppear:animated];

    if ([self isBeingPresented] || [self isMovingToParentViewController]) 
        // being presented or pushed
     else 
        // showing again because another VC was dismissed
    

【讨论】:

以上是关于确定 viewWillAppear 来自打开应用程序,还是取消选择模式的主要内容,如果未能解决你的问题,请参考以下文章

来自 viewDidAppear 的 Segue 调用有效,但不是来自 viewWillAppear

从弹出的 UINavigationController 或 UITabBarController 确定 viewWillAppear

阻止在 viewWillAppear 中打开窗口

通过单击应用程序图标(来自后台)打开时反应本机android应用程序重新启动

知道 -viewWillAppear 何时触发但 -viewWillDisappear 尚未触发

从 `ViewWillAppear` 触发 `TableViewCell` 函数