我已经为我的应用程序设置了一个自定义 url 方案,这就是应用程序不在后台运行时的工作方式:
- 自定义 url 链接到达电子邮件,点击后从故事板带来登录视图
- 单击登录按钮后,将转到选项卡控制器中您请求的选项卡
到目前为止,一切都很好。
这是我遇到的问题:
- 如果我再次从电子邮件中单击自定义 url 链接当应用程序已经加载一次并在后台运行时,它不会再次带来登录视图
我的问题是,当我多次单击自定义 url 链接时,我需要做什么来再次加载登录视图。
自定义 url 方案第一次可以完美运行,但在应用程序已经运行时就不行了。我试图调试这个......当我单击自定义 url 方案链接时,我的 AppDelegate.m 文件中调用了“handleOpenURL:(NSURL *)url”方法,所以我需要做什么才能从情节提要再次加载登录屏幕以及如何我要检查登录屏幕是否已加载到内存中...登录屏幕是我在情节提要中的开始视图,下面是我的应用程序委托中的 handleOpenUrl 函数的样子。
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
if(!url){
return NO;
}
// check if email link was clicked
if ([[url scheme] isEqualToString:@"docova"]) {
NSString *urlString = [url absoluteString];
NSLog(@"URL Parameter string: %@", [url query]);
NSLog(@"incoming url => %@", urlString);
// NSArray *arrayQStrings=[self getDataOfQueryString:urlString];
NSDictionary *dict = [self parseQueryString:[url query]];
NSLog(@"query dict: %@", dict);
NSLog(@"query dict: %@", [dict valueForKey:@"action"]);
NSLog(@"query dict: %@", [dict valueForKey:@"docpath"]);
//[self.tabBarController setSelectedIndex:1]; // tab 3
//[self.parentViewController.tabBarController setSelectedIndex:1]; // tab 3
/* save user data ***/
NSUserDefaults *appPrefs = [NSUserDefaults standardUserDefaults];
[appPrefs setObject:[dict valueForKey:@"action"] forKey:@"action"]; // reset these after using it
[appPrefs setObject:[dict valueForKey:@"docpath"] forKey:@"docpath"]; // reset these after using it
// save data to application preference
[appPrefs synchronize];
return YES;
}
return NO;
}
当应用程序已经运行时,有人可以建议如何从情节提要中预先显示视图。我知道android中有活动堆栈,ios中是否也有类似的东西......