2011-09-13 75 views
0

我的應用程序有點問題。
我有WebServices接收信息,而不是解析它並將信息存儲在數據庫中。數據庫(FMDB)加載時顯示啓動畫面(UIViewController)iPhone

我想要的是我的啓動畫面(或UIViewController)被顯示,直到所有的信息上傳到數據庫(FMDB是我使用的數據庫)。

目前,我有一個屏幕加載一段時間,而不是被刪除。 我使用的代碼是:
[self performSelector:@selector(removeSplashScreen) withObject:nil afterDelay:30];

的問題是一些信息加載到數據庫中,而另一個則不是。

任何能給我提示如何解決這個問題。

注意:啓動畫面並不是實際的啓動畫面(即Default.png),這只是一個UIViewController在該啓動畫面後顯示,我只是將其稱爲啓動畫面。

感謝

回答

1

可以通過提供一個通知或委託方法來指示解析完成做到這一點。這可以用來刪除啓動畫面。 這表示它不是一個好的方法來顯示啓動畫面,直到數據加載。如果加載數據有相當大的延遲會怎麼樣。請重新考慮你的方法。這種方法通常不能很好地與蘋果一起使用。

+0

這不是一個真正的啓動畫面,它是在啓動畫面後顯示的UIViewController。許多應用程序在加載數據時都會這樣做。 – Mush

+0

代表工作正常。謝謝 – Mush

0

如果你可以從你的數據庫代碼(下載,解析並保存)一個回調函數,使用該函數刪除閃屏控制器。 將數據存入數據庫之後,你在做什麼?你是把它顯示到一個表或web視圖或其他東西?知道這個答案,將有助於優化解決方案,以您的啓動畫面目標。

編輯:

if (nodeCount == 0 && indexPath.row == 0) 
{ 
    cell.detailTextLabel.text = @"Loading…"; 

    return cell; 
}// Leave cells empty if there's no data yet 
if (nodeCount > 0) 
{ 
    //fill cells with actual data that is present in database 
    return cell; 
} 
+0

數據正在許多UITableView中顯示。我只需要將所有數據存入數據庫,然後才能顯示。 – Mush

+0

如果它是一個表格,你可以隨時在第一個單元格上顯示一個類似「數據尚未下載」的單元格。一旦數據庫中的數據可用,就開始使用tableview中的數據返回實際單元格。這將是一個很好的設計,也很容易實現。 – jkr

+0

我的答案更新爲顯示一個顯示「數據仍在下載」的tableview單元格。 Nodecount實際上告訴了現在表中有多少行已經被實際下載。 – jkr

相關問題