在我今天的扩展程序中,我使用以下代码启动我的应用程序:
NSURL *url = [NSURL URLWithString:@"hdb://"];
[[self extensionContext] openURL:url completionHandler:nil];
启动应用程序后是否可以调用特定的ViewController?在我的应用程序中,所有ViewControllers都使用它们的segues调用:
[self.mainSlideMenu.leftMenu performSegueWithIdentifier:@"NewsPhoneSegue" sender:self];
答案 0 :(得分:1)
我通过在今天的扩展程序中编写了一个在UserDefaults中的Int来解决它,我现在从我下载的xml文件和我的应用程序的第一个VC中通过“case”检查值。因此,应用程序按照设置的要求启动案例0,案例1应用程序使用新闻启动,案例2启用其他视图,依此类推。在每种情况下,我添加了将Int重置为0,否则当通过图标启动应用程序时,我的设置将被忽略,因为该值是从上次使用扩展程序时存储的。
调用openURL之前今天扩展中的代码:
NSString *ZwischenZiel = [[self.todayParser.todayArray objectAtIndex:indexPath.row] View];
NSInteger Ziel = [ZwischenZiel integerValue];
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.company.HdB"];
[sharedDefaults setInteger:Ziel forKey:@"ViewValue"];
[sharedDefaults synchronize];
并在应用程序的第一个viewController中:
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.company.HdB"];
NSInteger Wert = [sharedDefaults integerForKey:@"ViewValue"];
switch (Wert) {
case 0:
//if-else for passing the right segue respecting settings
if ([manualStartSeite isEqual:@"lalala"]) {
[self.mainSlideMenu.leftMenu performSegueWithIdentifier:@"lalalaPhoneSegue" sender:self];
} else {
}
break;
case 1:
//News
[self.mainSlideMenu.leftMenu performSegueWithIdentifier:@"NewsPhoneSegue" sender:self];
[sharedDefaults setInteger:0 forKey:@"ViewValue"];
[sharedDefaults synchronize];
break;
case 2:
答案 1 :(得分:0)
如果我确实理解了您的要求,您可以在应用程序的最前端创建一个视图控制器,并且在其视图中,您可以使用标识符方法调用perform segue来调用您的特定视图控制器。希望它有所帮助。