2017-05-31 39 views
0

我的Swift iOS應用程序包含兩個屏幕。我如何深入鏈接到iOS應用程序中的特定屏幕(Swift 3)

  1. 主頁(HomePageViewController)
  2. 起始頁(StartPageViewController)。主頁上的按鈕單擊將用戶帶到此頁面。這個頁面有一個取消按鈕,可以讓用戶回到主頁面。

我的要求是深入鏈接到StartPageViewController。

我有這樣一段代碼中的AppDelegate -

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 

     if(url.path == "/startPage"){ 

      let startPage: StartPageViewController = mainStoryboard.instantiateViewController(withIdentifier: "StartPageViewController") as! StartPageViewController 
      self.window?.rootViewController = startPage 
     } 
     self.window?.makeKeyAndVisible()   
     return true 
    } 

有了這個代碼,深層鏈接將用戶帶到起始頁。但是,點擊取消按鈕後,會出現一個白色屏幕,而不是返回主頁。 (我認爲這是因爲開始頁面是rootViewController)。

如何將用戶導向起始頁並返回主頁,然後單擊取消。

謝謝!

+0

請解釋VC BCZ的流量我無法理解。 Sry基因。 –

+0

@dahiya_boy - 深層鏈接應將用戶帶到起始頁面。單擊開始頁面上的取消按鈕應將用戶帶到主頁面。現在,通過上面粘貼的代碼,Deep link將用戶帶到Start Page,但點擊取消按鈕時,出現一個白色屏幕。 (用戶不會被帶回主頁。需要使這項工作)。 – NKay

+0

請糾正我的錯誤。你的應用程序從startpageVC開始,取消點擊應用程序移動到HomeVc,永遠不會到startpageVC。 –

回答

-1

深度鏈接時,您將不得不經過與用戶相同的路徑。

因此,首先使用HomeViewViewController作爲rootViewController並以編程方式將StartPageViewController呈現給該控件。

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 
    if(url.path == "/startPage") { 
     let homePage = mainStoryboard.instantiateViewController(withIdentifier: "HomePageViewController") as! HomePageViewController 
     homePage.buttonClick(nil) // Make sure the action receive optional sender object 

     self.window?.rootViewController = homePage 
    } 
    self.window?.makeKeyAndVisible()   
    return true 
} 

嘗試了這一點,讓我知道如何去^ _^

+0

我已經測試過這個實現並驗證它的工作原理,檢查這是否適合您的需求。 – CoderFrom94

+0

錯誤的概念。 Bcz與此用戶Nevers進入PageVC。 –

+0

如果您沒有NavigationController模型,則直接將homePage分配給self.window?.rootViewController。 – CoderFrom94

相關問題