我已经在我的应用程序中实现了聚光灯搜索,一切正常,但在某些情况下,我想要知道从聚光灯搜索启动应用程序?请帮帮我,我怎么知道这个。
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因为" continueUserActivity:(NSUserActivity *)userActivity restorationHandler"方法调用" ViewDidLoad"
答案 0 :(得分:0)
根视图控制器不应该使用app delegate签入,该关系是错误的方式。应用程序委托应告诉根视图控制器(或者如果其他控制器需要了解它,可能会发布全局通知),以便它可以随时响应,而不仅仅是在最初设置时。您需要编写代码,以便可以在不同的状态之间切换。这通常可以通过推送或添加/删除子视图控制器来完成,这样就可以划分每种模式的功能。