Ios 从Safari直接打开应用程序的ViewController

Ios 从Safari直接打开应用程序的ViewController,ios,Ios,我有两个这样的ViewController: 我想使用URL方案从safari打开我的应用程序,我已经这样设置了 当我打开Safari并调用:TestSafari:///时,它工作了。但是我想让它自动打开ViewController2,而不是初始的ViewController,如何做到这一点 更新: 在AppDelegate中这样设置之后,它现在运行良好 func application(application: UIApplication, handleOpenURL url: NSUR

我有两个这样的ViewController:

我想使用URL方案从safari打开我的应用程序,我已经这样设置了

当我打开Safari并调用:TestSafari:///时,它工作了。但是我想让它自动打开ViewController2,而不是初始的ViewController,如何做到这一点

更新

在AppDelegate中这样设置之后,它现在运行良好

 func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {
        let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewControllerWithIdentifier("VC2")
        self.window?.rootViewController!.presentViewController(vc, animated: true, completion: nil)
        return true
    }

在AppDelegate中使用自定义url方法请参见此处的引用


您可以在Appdelegate.m文件中重写此方法以处理url

(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url源应用程序:(NSString*)源应用程序注释:(id)注释{
//跳转到视图控件2
返回YES;
}

调用模式URL时,可以添加一些标记 例子: 测验afari://firstController 测验afari://secondController

然后在appDelegate中处理此问题:

- (BOOL) application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
if ([url.absoluteString isEqualToString:@"TestSafari://firstController"]) {
    //PresentYour first Controller;
}
else if ([url.absoluteString isEqualToString:@"TestSafari://secondController"]){
    // present your second contoller
}
return YES;
}
-(BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url选项:(NSDictionary*)选项{
如果([url.absoluteString IsequalString:@“测试afari://firstController"]) {
//呈现我们的第一个控制器;
}
else if([url.absoluteString IsequalString:@)”测试afari://secondController"]){
//展示你的第二个控球手
}
返回YES;
}

如果这对您有帮助,请告诉我:)

它应该是func应用程序(应用程序:UIApplication,handleOpenURL:NSURL):)对不起,我以为它在Obj-C中。谢谢Khong291:)
- (BOOL) application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
if ([url.absoluteString isEqualToString:@"TestSafari://firstController"]) {
    //PresentYour first Controller;
}
else if ([url.absoluteString isEqualToString:@"TestSafari://secondController"]){
    // present your second contoller
}
return YES;
}