2

由于位置事件,我正在开发一个可以在后台启动的应用程序。从日志中我看到,当这种情况发生时,我的初始 viewController 也会被加载。有没有办法只在应用程序实际激活时才加载?初始视图控制器是通过情节提要设置的。

谢谢。

4

2 回答 2

2

您可以按如下方式抑制应用程序窗口的自动设置:在情节提要中选择初始视图控制器,转到属性检查器并取消选择“初始场景 -> 是初始视图控制器”。这将产生一个警告,因为该场景现在无法到达。转到身份检查器并设置 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;
}
于 2013-03-08T00:03:21.230 回答
0

在您的 App Delegate 中设置位置管理器并在那里处理位置事件。将 App Delegate 设置为该位置经理的代表。

于 2013-03-07T23:59:59.403 回答