2010-04-08 36 views
0

我有一個標籤欄和導航控制器應用程序(如Youtube應用程序或通訊錄應用程序)。我應該在哪裏加載一些用於加載應用程序數據的代碼?

從哪裏可以得到用於從網絡加載一些數據的代碼?這些數據對於Tab Controller的所有選項卡都是必需的,並且在從應用程序下載和解析所有數據(當然除了加載指示器視圖除外)之前,應用程序不能顯示任何內容。

到現在我把它放在AppDelegate中,但它在某種程度上感覺不對..

什麼是做正確的方法是什麼?

謝謝!

+0

我忘了提及我的問題是關於iPhone應用程序! – cgp 2010-04-08 16:54:56

回答

0

對於一個簡單的應用程序,在應用程序委託中執行此操作是可以的。但是,我可能會在我的主視圖控制器中執行此操作。我也可能會在這些標籤上添加一些默認設置,這樣用戶即使沒有互聯網連接也能看到某些內容(儘管這可能因應用程序而異,在您的情況下可能不合適)。

要記住的最重要的事情是無論你開始加載這些數據(無論是在應用程序委託還是在你的控制器的viewDidLoad方法中),你都應該啓動你需要的任何下載並建立適當的通知系統並返回儘快。即,不要在這些代表方法中阻塞。

一般來說,雖然聽起來這個數據與您正在創建的顯示有關,但在視圖控制器本身中包含它的加載可能是合適的。

+0

這是我的問題;我沒有一個主視圖控制器... AppDelegate創建UITabBarController,併爲每個選項卡創建一個UINavigationController,用每個RootViewController初始化,最後我將UITabBarController的視圖作爲子視圖添加到窗口中。沒有主視圖控制器,但每個選項卡都有一個視圖控制器。我做錯了嗎? – cgp 2010-04-08 17:25:44

+1

@cgp:在這種情況下,您的應用程序委託是充當您的主視圖控制器的,因此我認爲在那裏加載數據是完全合適的。 – 2010-04-08 17:29:34

+0

對UITabBarController進行子類化並將* it *作爲主視圖控制器是否更有意義? – RonLugge 2013-03-01 02:40:02

相關問題