2011-03-21 16 views
0

只是在一點點的建議真正推動了正確的方向。跳到導航堆棧中的一個點

我有與含有3個級別的導航控制器模態的視圖(視圖):

  1. 我的活動作業(拉動用戶活動作業從所述服務器,並顯示爲一個表的一個列表中,選擇一個作業和視圖2通過jobID並顯示)。

  2. 作業詳細信息(根據來自服務器的jobID提取作業詳細信息及其更新列表,選擇更新並查看3通過updateID並顯示)。

  3. 更新詳細信息(拉基於來自服務器的updateID更新的詳細信息,並連接到該更新的任何照片,選擇一張照片,它顯示全屏。

所以我有一個單獨的在應用程序的不同部分顯示最新更新的模式視圖,其中包括分配給用戶的新作業和活動作業的新更新

我想要做的是直接鏈接到相關視圖在導航控制器中當在最新更新模式窗口中選擇一個項目時

所以我的想法是在選擇最新更新時調用活動作業模式視圖並傳遞相關ID,初始化堆棧中需要的視圖組合,將ID傳遞給視圖,然後使用setViewControllers:animated:方法初始化導航控制器。

這是做到這一點的最佳方式,還是有更好的方法?

任何幫助或建議將不勝感激。

回答

0

我沒有看到重複爲視圖控制器創建視圖的功能的原因。你可以做的一件事是每個元素都有一個「緩存」(jobId和updateId)。如果你想一次推送多個viewController,你可以用所需的值填充緩存。然後,當您將viewController推送到navigationController時,新控制器將檢查緩存,並且如果緩存了某些內容,則只需直接推入下一個視圖控制器即可。這一切都會很快發生,並且對用戶來說應該是不明顯的。

通過這樣做,無論您是否知道下一個ID,您都使用相同的代碼。您要麼使用用戶選擇的ID,要麼使用其他選擇已預定義的ID。