2012-12-18 19 views
0

我已經閱讀過其他文章,指出在iOS中有多個代表並不是正確的做事方式(也許甚至不可能?),而應該使用諸如NSNotifications提醒其他(多個)視圖控制器的事件。將代理更改爲任何屏幕查看

在整個應用程序的運行時保持對象的委託是否相同,或者在任何給定時間將委託更改爲任何VC都是模態是有用的。

下面是一個例子: 我有一些模擬器類在後臺運行,並生成隨機數,將在應用程序中由幾個不同的視圖控制器使用。由於一次只能看到一個VC,因此我可以將活動VC作爲模擬器的委託,並在每次UI更改時切換委託。

...或者我可以使用像我現在正在做的通知,並有加載通知VC註冊。

感謝

回答

0

在目的,委託是一個對象,它確實代表了一些其他對象的一些工作。你似乎有一種情況,其中各種對象是數據提供者的客戶端。您所描述的背景任務負責完成視圖控制器僅僅幫助完成的事情是毫無意義的。

爲了使實現符合結構,我建議將背景對象分配爲視圖控制器的「數據提供者」屬性或保留通知...取決於您喜歡哪種程度的耦合以及哪個類您已啓動數據傳輸。