2010-05-26 62 views
0

我會開始在這裏坦白...我是一個真正的新手Objective-C & iPhone編程(開始在3月編碼的&),我有一個非常雄心勃勃的項目對於這種經驗水平&一個非常緊迫的截止日期,抓住機會給我的應用程序現場試用。模態視圖,而導入數據

我的應用程序是核心數據驅動&下載第一次運行時的所有數據,這是一個選擇,因爲它將用於3G網絡訪問可能不可靠的網站。我希望在發生這種情況時呈現一種模式視圖,沒有什麼花哨的東西只是一些文字來解釋,進度條或活動指示器,一個圖形相當於完成作業時可見的按鈕。我已經嘗試了幾種方法&失敗,所以沒有代碼,除了XIB以外的所有代碼都被破壞了。

在我運行中的applicationDidFinishLaunching這個代碼的那一刻...

[self checkDataAndLoadIfNeeded]; 
[window addSubview:rootController.view]; 
[window makeKeyAndVisible]; 

rootController是嵌套NavigationControllers一個TabBarController。 checkDataAndLoadIfNeeded是一種方法,用於檢查正在加載的數據的缺省值&如果不是,則顯示警報。用於解除警報的委託方法,然後是自定義類DataLoader,該類自動導入數據並下載&。

發生什麼情況是rootController視圖在警報發生前變爲可見&第一個選項卡上的表不會在下一次運行該應用程序之前加載任何數據。我想知道,如果沒有加載的數據是因爲我在做viewDidLoad &是否我最好是在viewWillAppear或viewDidAppear。當我嘗試加載模型視圖時,我已經創建了我的rootController視圖,但仍然變得可見第一個&我的模態視圖直到數據完成(或幾乎完成)下載(「完成」按鈕立即可見)才顯示出來。

任何人都可以提供有關如何使這項工作的建議嗎?

乾杯& TIA,佩德羅:)

回答

1

聽起來像你rootController不看在數據的變化。如果元素已經顯示或數據首先加載,應該沒有關係。如果稍後加載數據,則UI元素應該注意到數據已更新,然後自行刷新。

根據您的應用程序設計,您應該查看NSFetchedResultsController類並將其與其委託方法一起實施。本課程旨在觀察NSManagedObjectContext的變化以及將數據保存到磁盤時,使用已更改的內容更新其委託。

+0

謝謝Marcus,這給了我一個去學習的地方(一直在做很多事情)。與此同時,睡在形式問題上,醒來時又有了一些新鮮想法,導致解決了這一部分問題。 – Pedro 2010-05-27 12:56:57