我已经在我的应用程序中实现了Spotlight搜索,一切正常,但是在某些情况下,我想要求知道应用程序是否从Spotlight搜索启动?请帮我如何知道这一点。
AppDelegate.m
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray *restorableObjects))restorationHandler{
self.isSportlight = YES;
self.strSportlightUnitname = [userActivity.userInfo valueForKey:@"kCSSearchableItemActivityIdentifier"];
return YES;
}
rootViewcontroller.m
- (void)viewDidLoad
{
if(!appDel.isSportlight){
[self OnLaunchSettings];
}else{
[self setupSportLightEvent];
}
}
方面的结果是appDel.isSportlight = TRUE,但是appDel.isSportlight始终为FALSE,因为在“ViewDidLoad”之后调用了“continueUserActivity:(NSUserActivity *)userActivity restoreHandler”方法
最佳答案
根视图控制器不应使用应用程序委托进行签入,这种关系是错误的处理方式。应用程序委托应该告诉根视图控制器(如果其他控制器需要知道它,则可能会发布全局通知),以便它可以在任何时间响应,而不仅仅是在最初进行设置时。您需要编写代码,以便可以在不同状态之间切换。通常,这可以通过推入或添加/删除子视图控制器来完成,这样就可以分隔每种模式的功能。
关于ios - 如何从Spotlight搜索中启动该应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32990554/