2016-01-20 110 views
3

視圖控制器我有2個ViewController中像這樣:打開應用程序直接從Safari瀏覽器

enter image description here

我想通過使用URL方案打開Safari瀏覽器從我的應用程序,並且我已經將它設置這樣的。

enter image description here

它工作時,我打開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 
    } 

回答

4
中的AppDelegate

使用自定義網址的方法在這裏看到Custom URL

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]]; 
    UINavigationController *navController = (UINavigationController *)self.window.rootViewController; 
    [navController presentModalViewController:controller animated:YES]; 

    return YES;   
} 
1

參考您可以在Appdelegate.m文件覆蓋此方法來處理URL

(BOOL)application:(UIApplication *)application openURL:(NSURL *)url  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ 
    //jump to view controll 2 
    return YES; 
} 
0

當你打電話給你模式URL可以添加一些標記 示例: TestSafari:// firstController TestSafari:// secondCont輥

那麼你的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; 
} 

讓我知道,如果這可以幫助您:)

+0

應該FUNC應用程序(應用程序:UIApplication的,handleOpenURL網址:NSURL):) – Khuong

+0

對不起,我以爲它在Obj-C。謝謝khuong291 :) –

相關問題