0

我的問題很簡單:使用MVC模式,我應該在哪裏保存一些數組我在哪裏填寫和存儲陣列

  • 用戶 - >我NSObject類(型號)
  • 聯繫 - >我的聯絡TableViewController類,有User(控制器)的數組
  • 視圖 - >我Storyboard(查看)

嗯,我有一個主屏幕,有很多的按鈕:

  • 1 - >一個那些是「聯繫」。
  • 2 - >當我點擊它,mainView切換到ContactViewController(與故事板推)。
  • 3 - >這個ContactView應該顯示我的用戶數組。

考慮到我使用MVC,我應該在哪裏保存/ init我的陣列?

  • 在一個叫做「UserList」的新類(Model)中,在ContactViewController或其他地方?

即使我創建了一個新的模式「在UserList」,我應該稱呼它,所以它可以加載數據時,我的看法負荷?

回答

0

在你的模型中。當然,如果你的數據是不可改變的,那麼模型實際上可能包含/創建數據本身,那麼可以將模型看作是存儲爲plists,sql db等的數據的接口。因此,通常模型會根據數據庫中的數據或plists創建一個數組(或一組數組)。然後ViewController會從模型中請求一個或多個數組條目。

按鈕「contact」是mainView的一部分。它的顯示由mainViewController控制,它將一個新的ContactViewController控制器放入堆棧。 ContactViewController應該創建或從模型中檢索數據,這些數據將用於顯示它的視圖元素。

+0

好的,謝謝你的回答。所以我的問題是「哪裏」(在哪個函數中)我應該使用數據來調用我的模型。 因爲如果我在「ViewDidLoad」中執行它太晚了,視圖已經加載。 我不能在「Init」函數中執行它,因爲它不是調用。 因此,在什麼功能的情況下ContactViewController-我應該這樣做嗎? (啓動我的標籤)。 – Slake

+0

如果是我,我會爲viewController編寫一個自定義的init方法: - (id)initWithContactID:(NSString *)theContactID;在該方法中,我將創建指向shared/singleton Model類的指針,然後在viewController中從該方法的模型中檢索數據。您從模型中檢索到的數據可能是該聯繫人的所有數據的數組(您可以根據需要指定),也可以單獨獲取數據(我通常的首選項)。 – ader

+0

其實你可以在viewDidLoad中做到這一點,因爲在這一點上什麼也沒有顯示在屏幕上。在viewWillAppear之前調用viewDidLoad,而不介意viewDidAppear。如果你調用它,你可以在init中完成:[ContactViewController init]; – ader

0

您應該在您的「用戶」類(用戶 - >我的NSObject類(模型))中爲該數組創建一個新字段。如果初始化它需要很長時間,那麼你應該在你的ContactViewController的ViewDidLoad中初始化它。