2011-06-22 75 views
1

基本上我想要實現一個彈出的UIView如何分辨,所以我遵循的是在這裏 POP-UP UIView "IMDB App" style當一個子視圖被刪除一個UIView

發佈這工作得很好。不過,我有一個查詢。我的主視圖是一個tableView。所以當一個視圖彈出時,我禁用了滾動表格。現在,當刪除彈出式子視圖時,我需要重新啓用滾動。我如何實現這一目標?我不能使用willRemoveFromSuperview,因爲彈出視圖完全加載了不同的NIB。

我應該使用通知嗎?

希望我解釋清楚情況。

在此先感謝!

+0

如果您重新啓用滾動彈出視圖的viewDidUnload方法會怎樣?我不確定這是否正是你想要的。 –

+4

我見過很多人在視圖中關閉視圖 - 當然,你可以這樣做,但是你會得到「我怎麼知道它被關閉了?」。你所做的是遵循Apple的建議,併爲你的視圖類創建一個@protocol。所以,現在當你創建彈出窗口時,你還需要註冊一個委託。當彈出窗口關閉時,它會調用委託並從它關閉彈出窗口並重新啓用滾動。 爲每個子視圖創建一個協議和一個委託有點麻煩,但它解決了很多問題。 –

+0

這完美無缺,@Feloneous貓。謝謝!這也是一種非常有效的方法! – Sohan

回答

2

Feloneous Cat有正確的答案。這是您的彈出視圖中的一個完美的使用@protocol以及註冊的代表。某事正在觸發該彈出視圖關閉。無論觸發什麼,都可以調用協議,委託可以根據需要處理情況。此外,當協議使用正確時,您的代碼在項目以及其他項目中變得非常可重用。

+0

謝謝@dredful。這工作完美,也是一個非常有效的方法! – Sohan

1

你可以做的是子類UIView並覆蓋removeFromSuperview發送通知。我不認爲有一種情況下不使用removeFromSuperview方法刪除視圖。

相關問題