0

我有一個應用程序由「導航控制器」whith「UITableViewController」,其中包含導航項目與搜索字段。在故事板中,搜索欄位於TableView內部。在performSelectorInBackground後重新加載cellView

我從服務器請求XML,如果我直接在主線程上執行它,它非常慢,但它工作正常,來自服務器的信息在CellView上顯示爲「reloadData」。 但是,當我用「performSelectorOnBackground」做到這一點時,我設法獲取數據,但我必須點擊搜索欄的「取消」按鈕才能顯示我剛纔查詢的結果!我試過了:「[self.tableView performSelectorOnMainThread:@selector(reloadData)withObject:nil waitUntilDone:NO];」但它不會改變它。最糟糕的是,如果我在「cellForRowAtIndexPath」中放置了一個「NSLog」,它將顯示數組的內容。 「searchBarCancelButtonClicked」是完全空的。

對不起,英語不是我的母語,感謝十億次的幫助!

編輯18/04/12: 現在TableCellView異步正確填充,但有一個問題。當XML的請求準備就緒後,我可以在當前視圖的ViewController中看到它。但我必須在searchBox中輸入另一個字母才能將先前的結果「推送」到我的tableViewCell中。 現在我在當前視圖中調用另一個類,在另一個線程(dispatch_async)請求另一個函數來解析XML,一旦完成,我發送一個「NSNotification」,以便當前視圖初始化用於填充表單的NSMutableArray。有人對如何欺騙它有一個想法嗎?感謝十億次!

回答

0

完成數據解析後,調用[tableview reloadData] ;.它會用最新的數據填充你的數據。

+0

您好!謝謝你的回答,但情況已經改變。現在TableViewCell被填充,但是有一個小問題,我更新了我的帖子。謝謝 ;) – Charles33 2012-04-18 12:36:36