2016-02-19 130 views
-1

早上好,我有我的应用程序通过BLE检查连接的设备,如果设备未连接,我使用此代码继续设置应用程序以建立连接。设置应用程序Xcode

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
    [[UIApplication sharedApplication] openURL:url]; 

然而在使用时所提供的回应用按钮在使用者介面上返回到所述类时,不再次触发viewDidLoad方法!! ,问题是我如何执行相同的检查,然后采取不同的措施。即延续到下一个场景?

问候 JZ

回答

0

您需要在该视图控制器中聆听UIApplicationWillEnterForegroundNotification,并在应用程序进入前景时检查该情况。在这种情况下,应用程序转到前台意味着用户从设置返回到您的应用程序,所以这是您可以检查和执行延续的地方。

但要小心,如果此视图控制器始终处于活动状态,则每次应用程序进入前景时都会执行代码。确保只有在真正需要时才显示此视图控制器。

+0

谢谢,我会试一试。再次感谢你的帮助。 –

+0

感谢各位的帮助,viewDidAppear不会从第二次从设置应用程序返回时触发。关于如何听取UIApplicationWillEnterForegroundNotification的一些帮助,来完成我的任务 –

+0

伟大的我想通了UIApplicationWillEnterForegroundNotification完美地工作.. –

1

可以使用viewDidAppear方法再次触发它

+0

ViewDidAppear?好的,如果我把我的方法放在viewDidAppear中,它会被访问两次?首次启动并从设置应用程序返回? –

+0

它应该是。每次ViewController出现在屏幕上都会被调用。但是,即使调用了ViewDidLoad,也会调用viewDidAppear!所以要小心 –

+0

'viewDidAppear'不会被调用,从'Settings'应用程序恢复视图。 – Kanchu

1

您应该检查从苹果View Controller lifecycle chart,因为这个文件在你有关于比UIViewControllerclass referenceviewDidLoad方法的详细信息。

在此页面上的viewDidLoad的描述应该可以帮助您:

viewDidLoad中() - 当创建视图控制器的内容视图(其视图层次结构的顶部),并从故事板中加载之后调用。此方法用于初始设置。但是,由于视图可能会因应用程序资源有限而被清除,因此不保证只会调用一次。

除了您的应用程序内存不足的特殊情况,viewDidLoad在视图控制器生命周期中仅被调用一次。

改为使用viewDidAppear方法,每当视图变为可见时(第一次出现或从应用程序设置返回时)都调用该方法。