2010-10-22 65 views
0

我有一個帶有三個視圖控制器的基於導航的應用程序。第一類具有信息類別,第二類具有該類別的項目列表,第三類具有關於特定項目的細節。基於導航方向調用NSXMLParser

我使用在viewWillAppear上調用的NSXMLParser填充視圖控制器1和2。在向前(VC1到VC2到VC3)的方向上,一切都很好,分析器被調用並且視圖被填充。

不幸的是,當用戶選擇導航欄上的後退按鈕時,同樣的過程發生在相反的位置(VC3到VC2到VC1),因爲viewWillAppear被再次調用,所以解析器也被調用,即使它只是獲取相同的數據。

我想確保解析器只在正向調用。任何想法我可能會構造這個?

謝謝,菲爾

回答

1

能否請你爲對VC2稱爲goingForward一個BOOL伊娃是得到由VC1之前-pushViewController設置爲YES這樣簡單的事情:動畫:調用和VC3之前設置爲NO - popViewControllerAnimated:...然後在VC2的-viewWillAppear中檢查goingForward?

我確信有更優雅的方式來做到這一點(並期待閱讀有關它們) - 但這應該工作,你不覺得嗎?

+0

優雅與否,這聽起來像是一個很好的解決方案。我認爲一對ivars會這樣做。我可以使用viewWillAppear來檢查ivar,並決定是否運行解析器並使用viewWillDisappear來相應地設置ivar。謝謝。 – 2010-10-23 09:20:26