首页 文章

检测应用开放?

提问于
浏览
2

我有一个带有3个视图控制器的Tab栏应用程序,我使用“viewWillAppear”来检测哪个视图是打开的 .

当我关闭应用程序时,它仍然“在后台”工作,当我再次打开应用程序时,“viewWillAppear”没有检测到这个开头 .

有没有其他选择来检测这个开口?谢谢

4 回答

  • 0
    - (void)applicationWillEnterForeground:(UIApplication *)application {
    NSLog(@"app will enter foreground");
    [viewController refresh:NULL];
    }
    

    我认为这会奏效 . 在你的app delegate中写这个

  • 8

    首先,你应该在 UIApplicationDelegate 看到必要的委托方法

    • 当您关闭当前打开的应用程序时,它将调用此方法:

    - (void)applicationDidEnterBackground:(UIApplication *)application

    • 应用程序关闭但仍处于停靠状态后,再次打开它们 . 在进入应用程序之前的过渡状态中,它将调用此方法:

    - (void)applicationWillEnterForeground:(UIApplication *)application

    • 当应用程序在关闭它们之前完全呈现在先前状态时 . 它最终调用thid方法:

    - (void)applicationDidBecomeActive:(UIApplication *)application

    如果您想在 viewWillAppear 中执行某些操作,则应在 applicationDidBecomeActive 中实现向当前视图或其他人发送一些消息,以便在应用程序激活后执行您想要执行的操作 .

  • 5

    您可以在应用委托中观察 UIApplicationWillEnterForegroundNotification 或实施 applicationWillEnterForeground: .

  • 1

    当您的应用从后台恢复时,它将收到 applicationWillEnterForground: 方法 . 当它被暂停时它会得到 applicationDidEnterBackground: .

相关问题