2012-03-26 316 views
0

我有3個廠景,視圖2和圖3。我有鑑於2修改數據的問題,當我在視圖3.下面是我能想到的辦法的最佳實踐

  1. 拉導航控制器棧,識別由iskindof測試的視圖,取變量,並改變它
  2. 視圖2從的appdelegate獲得的值,並從圖3我只是在的appdelegate更新它和它的工作原理
  3. 使用通知中心並更改數據。

這是最建議的方式來改變我的情況的數據。

的數據僅僅是一個改變設置值的對象的陣列。 。

+1

[什麼是視圖控制器之間溝通的最佳方式是什麼?(http://stackoverflow.com/q/569940/194544) – beryllium 2012-03-26 07:52:07

回答

1

選項(1)是的讓你頭疼,如果你做任何進一步的重構上下行風險最高的辦法。它也很煩瑣,所以存在犯錯的風險,然後不得不花費更多時間來修復它們。出於這些原因,最好避免它。

之間選擇(2)和(3)容易引起讀者的全局意識形態爭論,封裝等

有很多關於(3),使用UINotificationCenter可說的,即使你不採用認爲全局是邪惡的。它鼓勵你清楚地思考你正在採用的通信協議,它可以防止應用程序委託中的混亂,它往往是重構最穩定的,如果你想在其他地方重新使用視圖,你有一個開始等

特別是與精心設計的通知,你經常會發現,如果你進一步重構的路線,你將有少得多的工作 - 甚至沒有 - 讓你的代碼運行的權利。