2012-09-03 73 views
0

我會嘗試與走出困惑解釋:我使用的是Three20庫Three20 InvalidateModel

我有一個包含廈門國際銀行和類創建一個「彈出」一個PostEdit類調用編輯後(下圖) ,在現有視圖(PostSearch)上,以便用戶在嘗試編輯他們創建的論壇時不必離開屏幕。

因此,當用戶按下發送按鈕並將數據發送回服務器時,我想invalidateModel返回PostSearch類(Model/DataSource)。這是我不知道該怎麼做的地方。 我甚至在我的PostEdit類中取得了成功。

PostSearch *post = [[PostSearch alloc] init]; 
    [post Invalidate]; 
    [post invalidateModel]; 
    [post invalidateView]; 
    [post release]; 

enter image description here

+0

您能否解釋一下關於PostEdit和PostSearch之間的關係以及當用戶點擊完成時你正在嘗試做什麼? – sergio

+0

兩者之間唯一的關係就是上面的圖片只是一種編輯論壇發帖的方式。當用戶點擊完成時,我唯一無法弄清楚的是如何invalidateModel(Three20)。無效模型在PostSearch類中,我想從PostEdit類調用它。 – Duny

回答

0

我不知道我明白你正在嘗試做的;在任何情況下,我都會嘗試回答,假設PostSearch是位於PostEdit下的控制器;在編輯帖子並單擊完成後,您想要更新PostSearch。

如果這是正確的,那麼您需要做的是訪問已經存在並且當前顯示在PostEdit下的PostSearch對象。例如,您可以:

  1. 當您創建PostEdit時傳遞對PostSearch的引用;那麼在完成按鈕處理程序中,您將使其模型無效;或者,

  2. 註冊您的PostSearch對象以獲取通知(通過NSNotificationCenter)PostEdit在點擊完成時將觸發;或者,

  3. 使用「蠻力」的方法,並在您的PostSearch viewWillAppear做無效。

我從來沒有使用過invalidateModel方法。我做什麼,當我需要刷新我的數據是:

self.model = nil; 
self.model; 

你也可以試試這個。

+0

我試過了,我甚至試着調用一個定時器來調用[[self invalidate]],定時器被調用,但[self invalidate]沒有做任何事情,它只會在類中調用該方法時才起作用。如果有辦法做到這一點。 – Duny

+0

我提出了三種不同的方法讓你從課堂內部調用這個方法......如果你選擇一種方法並嘗試一下,我可以進一步幫助它。 – sergio

+0

我已經嘗試了所有這些,但仍然沒有收到任何東西。這讓我感到困惑。 – Duny