由于位置事件,我正在开发一个可以在后台启动的应用程序。从日志中我看到,当这种情况发生时,我的初始 viewController 也会被加载。有没有办法只在应用程序实际激活时才加载?初始视图控制器是通过情节提要设置的。
谢谢。
由于位置事件,我正在开发一个可以在后台启动的应用程序。从日志中我看到,当这种情况发生时,我的初始 viewController 也会被加载。有没有办法只在应用程序实际激活时才加载?初始视图控制器是通过情节提要设置的。
谢谢。
您可以按如下方式抑制应用程序窗口的自动设置:在情节提要中选择初始视图控制器,转到属性检查器并取消选择“初始场景 -> 是初始视图控制器”。这将产生一个警告,因为该场景现在无法到达。转到身份检查器并设置 Storyboard ID。
为了让应用程序在您需要时正常工作,请手动设置窗口...
- (void)applicationDidBecomeActive:(UIApplication *)application
{
BOOL condition = /* whatever condition that makes you want to present the UI */
if (!application.keyWindow.rootViewController && condition) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
// use the your view controller subclass here if you've made one
UIViewController *vc= [storyboard instantiateViewControllerWithIdentifier:@"the identifier"];
application.keyWindow.rootViewController = vc;
}
在您的 App Delegate 中设置位置管理器并在那里处理位置事件。将 App Delegate 设置为该位置经理的代表。