2011-07-20 24 views
0

當在我的應用我做的tableView啓用的tableview用戶交互。通過點擊行,新的視圖將導航。在導航新視圖之前,應用程序正在處理來自服務器的數據。在完成數據處理之前,視圖將不會導航。在這段時間內,我想禁用tableview的用戶交互,所以用戶不能選擇更多的行。如何回來的tableview

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    tableView.userInteractionEnabled = NO; 
} 

請注意,當我再次回到tableview時,用戶將再次被允許選擇任何行。 我不知道,我怎麼能再次啓用userinteracation。

回答

0

我假設你正在異步獲取你的數據。 在這種情況下,您可以重新啓用從您的連接委託方法的用戶交互。如果您使用的NSURLRequest/NSURLConnection的,委託方法是:connectionDidFinishLoading:(不也即將connection:didFailWithError:忘了)。

NSURLConnection Reference

connectionDidFinishLoading:

當連接成功完成加載發送。

因此,當數據存在並且您已完成處理時,將重新啓用表視圖。

+0

我異步獲取數據。但我沒有定義任何委託方法。所以我無法訪問方法connectiondidFinishLoading中的tableView變量。即使我實現委託方法,我將如何訪問變量tableview。 – Harsh

+0

如果您還沒有定義'connectionDidFinishLoading',你與你接收到的數據做?至於如何從這個委託中訪問你的tableview,這取決於你的委託是什麼。如果你的委託與你的UITableViewController相同,那麼表視圖是'self.tableView'。 – sergio

+0

好的。我在方法中做到了這一點,我使用與UITableViewController相同的委託來解析數據。有效。謝謝。 – Harsh

0

對於導航回來後,將按照您的viewWillAppear句子會再次讓你的表視圖的用戶交互爲true。

tableView.userInteractionEnabled = YES;