早上好,我的应用程序通过BLE检查连接的设备,如果设备未连接我正在使用此代码转到设置App以建立连接。
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
然而,当使用UI顶部提供的返回应用程序按钮返回到类时,不会再次触发viewDidLoad方法! ,问题是如何执行相同的检查,现在采取不同的行动。即塞到下一个场景?
此致 JZ
答案 0 :(得分:1)
您可以使用viewDidAppear
方法再次触发
答案 1 :(得分:1)
您应该查看Apple的View Controller lifecycle chart,因为在本文档中,您提供的viewDidLoad
方法信息比UIViewController
class reference更多。
在此页面中,viewDidLoad
的说明可以为您提供帮助:
viewDidLoad() - 在从故事板创建和加载视图控制器的内容视图(其视图层次结构的顶部)时调用。此方法适用于初始设置。但是,由于应用程序中的资源有限,可能会清除视图,因此无法保证只会调用一次。
除了应用程序内存不足的特殊情况之外,viewDidLoad
在视图控制器生命周期中只调用一次。
改为使用viewDidAppear
方法,每当视图变为可见时(第一次出现或从应用程序设置返回时)都会调用此方法。
答案 2 :(得分:0)
您需要在该视图控制器中侦听UIApplicationWillEnterForegroundNotification
并在应用程序进入前景时检查该情况。在这种情况下,应用程序转到前台意味着用户从设置返回到您的应用程序,因此您可以在此处检查并执行segue。
但要小心,如果此视图控制器始终处于活动状态,则每次应用程序进入前台时它都会执行代码。确保在真正需要时只显示此视图控制器。