2011-07-20 5 views
0

私のアプリでは、私はtableViewをやっています。行をクリックすると、新しいビューがナビゲートされます。新しいビューのナビゲーションの前に、アプリケーションはサーバーからデータを処理しています。データの処理が終了するまで、ビューはナビゲートされません。この期間に、私はtableviewのuserinteractionを無効にしたいので、ユーザはそれ以上の行を選択することはできません。テーブルビューに戻ったときにtableviewでユーザインタラクションを有効にする方法

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

再び、私が再びtableviewに戻ると、ユーザーは再び任意の行を選択することができます。 私は何も考えていません、どのように私は再びユーザーインタラクションを有効にすることができます。

答えて

0

データを非同期で取得しているとします。 この場合、接続代理メソッドからユーザー対話を再度有効にすることができます。 NSURLRequest/NSUrlConnectionを使用している場合、デリゲートメソッドはconnectionDidFinishLoading:connection:didFailWithError:も忘れないでください)です。 NSURLConnection Referenceから

connectionDidFinishLoading:接続のロードが正常に完了したときに送信され

データが存在し、処理が完了したら、テーブルビューを再度有効にします。

+0

データを非同期的に取得しています。しかし、私は代理メソッドを定義していません。だから私はメソッドのconnectiondidFinishLoadingでtableView変数にアクセスできません。私は代理メソッドを実装する場合でも、どのように私は変数テーブルビューにアクセスします。 – Harsh

+0

'connectionDidFinishLoading'を定義していない場合、受け取ったデータはどうしていますか?このデリゲートからテーブルビューにアクセスする方法は、デリゲートが何であるかによって異なります。デリゲートがあなたのUITableViewControllerと同じ場合、テーブルビューは 'self.tableView'です。 – sergio

+0

私はメソッドで、私はUITableViewControllerと同じデリゲートを使用してデータを解析しています。出来た。ありがとうございました。 – Harsh

0

ナビゲーションのために戻るには、viewWillAppearに次の文章を入力します。これにより、再びテーブルビューのユーザー操作が真になります。

tableView.userInteractionEnabled = YES; 
関連する問題