簡體   English   中英

如何在將數據傳遞給 viewController 時實例化 navigationController?

[英]How do I instantiate navigationController while passing data to viewController?

所以我有一個tabBar 單擊某個選項卡會將用戶帶到嵌入在navigationControllerviewController 為了有navigationController在內,我實例化viewController使用

myViewController = [storyboard instantiateInitialViewController];

而不是

myViewController = [storyboard instantiateViewControllerWithIdentifier:@"myID"];

后面的代碼推送viewController但沒有navigationController

這很好,直到我想將數據傳遞給實例myViewController為止。 問題是,我無法通過引用初始viewController (即navigationController )的實例傳遞數據,但我可以使用直接引用myViewController的實例來傳遞數據。 換句話說:

這是為了獲取數據(但沒有navigationController ):

viewController = [storyboard instantiateViewControllerWithIdentifier:@"experienceID"];
((ExperiencesListViewController*)viewController).experiences = self.experiences;

如果我嘗試添加數據,這會崩潰,但如果我排除設置數據,則會給我一個navigationBar欄:

viewController = [storyboard instantiateInitialViewController];
((ExperiencesListViewController*)viewController).experiences = self.experiences;

希望我能很好地解釋這一點。 如果有什么我需要澄清的地方,請告訴我。

編輯我的第一個想法是使用prepareSegue但在tabs之間移動時似乎不會觸發。 另一個想法是以某種方式通過實例訪問myViewController ,但不確定如何。

那是因為該特定故事板的初始UIViewControllerUINavigationController

獲得您想要的 VC 的一種簡單方法是通過調用獲得這樣的UINavigationController

navController = [storyboard instantiateInitialViewController];

就像你所做的那樣,然后:

navController.childViewControllers[0]

這將返回該特定導航控制器的第一個 VC(當然,假設它僅包含它嵌入的 VC),這可能是您的ExperiencesListViewController

暫無
暫無

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

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