我正在开发一款可以在后台因位置事件而启动的应用。从日志中我看到,当发生这种情况时,我的初始viewController也会被加载。有没有办法只在应用程序实际变为活动时加载?初始视图控制器通过故事板设置。
感谢。
答案 0 :(得分:2)
您可以按如下方式禁止自动设置应用程序窗口:在故事板中选择初始视图控制器,转到属性检查器并取消选择“初始场景 - >是初始视图控制器”。这将生成警告,因为现在无法访问场景。转到身份检查器并设置故事板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;
}
答案 1 :(得分:0)
在App Delegate中设置位置管理器并处理其中的位置事件。将App Delegate设置为该位置管理器的委托。