簡體   English   中英

如何將數據傳遞到UINavigationController堆棧上的第n個視圖控制器?

[英]How to pass data to nth view controller on the UINavigationController stack?

有2個應用程序A和B。

應用A具有打開應用B的網址。

App B打開后,必須將5個視圖控制器加載到導航堆棧上,這是通過以下代碼完成的:

let LandingVC = self.storyboard?.instantiateViewControllerWithIdentifier("LandingVC") as! LandingVC
let Dashboard = self.storyboard?.instantiateViewControllerWithIdentifier("Dashboard") as! Dashboard
let PlayerVC = self.storyboard?.instantiateViewControllerWithIdentifier("PlayerVC") as! PlayerVC
let PlayerDetailVC = self.storyboard?.instantiateViewControllerWithIdentifier("PlayerDetailVC") as! PlayerDetailVC
let ScoreReportVC = self.storyboard?.instantiateViewControllerWithIdentifier("ScoreReportVC") as! ScoreReportVC
let viewControllersList = [LandingVC, Dashboard, PlayerVC, PlayerDetailVC, ScoreReportVC]
self.navigationController?.setViewControllers(viewControllersList, animated: false)

ScoreReportVC我需要能夠在先前的ViewController上設置變量,以便即使用戶從另一個應用程序中啟動了該應用程序,用戶也可以導航到先前的屏幕。

這是我曾嘗試:限定在以前視圖控制器是后面的協議ScoreReportVC是在堆疊和內部ScoreReportVC像這樣:

for viewcontroller in self.navigationController?.viewControllers {
if viewcontroller is PlayerDetailVC {
    PlayerDetailVC.delegate = self
}
if viewcontroller is PlayerVC {
    PlayerVC = self
}
if viewcontroller is Dashboard {
    Dashboard.delegate = self
}
if viewcontroller is LandingVC {
    LandingVC.delegate = self
}
}

但是代表們沒有被打來。 任何幫助如何正確地將數據傳遞給堆棧上的所有ViewController的幫助將不勝感激。

對於相關的類,我們使用委托。 但是不相關的類,對於這些類,我們使用通知。 在您的情況下,將需要使用Notifications來實現並將數據從一個VC傳遞到另一個VC。

更好的方法是在創建控制器時創建/設置變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM