2013-04-05 47 views
2

當用戶在我的表中選擇一行時,我需要用CoreData加載一堆數據。這需要幾秒鐘的時間(至少在模擬器上運行時 - 尚未在設備上測試過,但我想它仍然會很長)。我想在用戶選擇一行時顯示加載彈出窗口畫面(我正在爲iPad開發),然後在加載數據後讓它消失。當用戶選擇UITable行時顯示等待屏幕

在使用UIButtons時,我總是通過觸發TouchDown和TouchUp方法來完成此操作。我把代碼顯示在TouchDown上,然後在TouchUp中做所有我的實際工作(所以在這種情況下從CoreData加載)。然後在TouchUp結束時,關閉popover。

有沒有辦法在按鈕上以同樣的方式拆分表視圖中的觸摸?

+0

幾秒鐘?你可以優化你的數據嗎?這似乎加載太長時間了。 –

+0

這是很多數據。我沒有馬上使用它,所以我想我可以嘗試將它分解一點,這樣每次訪問所花費的時間就會少一些,但是一次完成所有操作只會讓它更有組織地進行操作。很高興知道一旦我做了這些工作,我就擁有了我所需要的一切,所以我不必擔心在某些情況下我可能已經加載了某些操作所需的數據,而不是其他人。總之,我認爲這樣更好。 – GeneralMike

回答

1

因此,當我打字的問題,我遇到了Apple DocswillSelectRowAtIndexPath東西,看起來像是在那裏解決這個問題。我沒有看到關於此的任何其他主題,所以我想我會利用這個「回答自己的問題 - Q & A」功能在這裏,所以也許在未來尋找這個的人會發現它一點點更輕鬆。


巨大FYI塊:

我要指出,willSelectRowAtIndexPath實際上應該返回NSIndexPath,不像didSelectRowAtIndexPath(返回void)。不過,我原本有

-(void)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //stuff 
} 

請注意void返回類型。 Xcode(版本4.5)允許這個沒有任何錯誤或警告(甚至在我自動完成列表中)。當我用這種方式運行代碼時,我總是在libobjc.A.dylib'objc_autorelease:中遇到一個看不見的斷點(可能是因爲我啓用了「所有異常」斷點?)。我無法越過這個斷點,我從來沒有在調試器輸出控制檯中獲得任何調試信息,並且該應用程序從未終止。我碰巧再次查看Apple Doc,注意到它應該返回一個NSIndexPath(具體來說,代碼應該解釋爲被選中的索引路徑),但如果我沒有碰巧看到它,我從來不會知道問題是什麼。