gpt4 book ai didi

ios - 在 applicationDidBecomeActive 之后切换 View

转载 作者:行者123 更新时间:2023-11-29 13:09:18 26 4
gpt4 key购买 nike

我目前正在开发一个应用程序,在后台运行超过五分钟后需要返回到另一个 View 。为了做到这一点,我必须让一个定时器在按下主页按钮后在后台运行,或者在出现短信或电话等中断的情况下,然后,五分钟后应用程序将需要转到另一个 View 。我知道必须使用 applicationDidBecomeActive 方法,但是如何使用呢?我也知道可以在 applicationDidBecomeActive 中刷新 View ,但这是怎么做到的? (我没有使用 Storyboard。)

最佳答案

实际上,您应该使用 UIAppDelegateapplicationDidEnterBackground applicationWillEnterForeground 委托(delegate)方法或通过注册到适当的系统通知( didBecomeActive 也会在其他情况下调用,例如当 UIAlertView 从屏幕上消失时)。

这应该是(可能包括语法问题,我在这里进行文本框编码):

  • 在 View Controller 的 viewDidLoad 方法中,注册通知:


    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil];

  • 实现 willEnterForeground:didEnterBackground: 方法。在 willEnterForeground: 中使用 CACurrentMediaTime()[NSDate date] 对当前时间进行采样。在didEnterBackground:中再次采样时间,计算时间差。由于此方法是在 View Controller 内部实现的,因此您可以根据需要操作 self.view 的 subview 。

  • 不要忘记在您的 dealloc 方法上移除观察者(viewDidUnload 自 iOS 6.0 以来已弃用,因此请注意):


    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil]

关于ios - 在 applicationDidBecomeActive 之后切换 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17764956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com