mir den folgenden Code zu Deep-Link (zB von Safari-Browser) zu einem bestimmten Viewcontroller in meiner App:Deeplink zu Viewcontroller in iOS App funktioniert nach nur einmal
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool{
if(url.host == nil){
window?.rootViewController?.performSegueWithIdentifier("DeepLinkSegue", sender: nil)
print("Push-VC opened!")
print(window?.rootViewController)
print(window)
}
return true
}
Wenn dlapp eingeben:// Im Safari-Browser sollte der ViewController mit dem Sequence Identifier "DeepLinkSegue" geöffnet werden. Das funktioniert einwandfrei, der ViewController öffnet sich.
Aber nur einmal nach dem Start der App. Wenn Sie zu einem anderen VC gehen und versuchen, den spezifischen VC mit "dlapp: //" wieder zu öffnen, wird nur die App geöffnet, nicht der bestimmte VC. Sie müssen die App neu starten, sonst wird es nicht funktionieren und öffnet nur die App nicht die spezifische VC.
Ich dachte zuerst die Funktion wird vielleicht nur einmal aufgerufen. Aber nicht so, weil print ("DL-VC geöffnet!") Immer druckt. Mit Hilfe der drei print() Funktionen in meinem Code gibt dies in der Konsole:
Push-VC opened!
Optional(<DeepLinkTest.ViewController: 0x157da1d40>)
Optional(<UIWindow: 0x157da3830; frame = (0 0; 414 736); autoresize = W+H; gestureRecognizers = <NSArray: 0x157da4a90>; layer = <UIWindowLayer: 0x157da1530>>)
können Sie das Projekt herunterladen, um das Problem zu reproduzieren hier: http://www.filedropper.com/deeplinktest_1
Grüße, David.
Hallo Wilson XJ, vielen Dank. Dein Code macht genau das, was ich will. Du bist unglaublich. Vielen Dank und ein schönes Wochenende! –