0

私がやりたいのは UITableView で、ユーザーは行をスワイプして削除するオプションを表示し、削除を押すと、典型的な行よりも重要であるため、行を削除することを確認するために UIActionSheet がポップアップしますテーブルで。彼らが何を押すかに応じて、その行のデータをデータベースから削除できます。ただし、その行のindexPathをUIActionSheetに取得するにはどうすればよいですか? 1 つのセクション テーブルがある場合、その行のタグを使用して indexPath を再作成できるかもしれませんが、複数のセクションがある場合、これを行うにはどうすればよいでしょうか?

私の中にカテゴリか何かを持っていることで、より良い方法があるようです

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

メソッド、そこの行を削除するだけです。または、UIActionSheet から情報を返す方法はありますか? ありがとう!

4

3 に答える 3

0

いくつかのこと:

  1. UIActionSheetは使用せず、UIAlertViewを使用します。
  2. 削除のために「編集」されている行は、selectedRowであるか、selectedRowとして設定されます。
  3. ユーザーが「はい」を選択した場合は、先に進んでその行ボタンを削除し、

UITableViewオブジェクトの[indexPathForSelectedRow]メソッド。追加のNSIndexPathオブジェクトを保存したり、状態を記憶したりする必要はありません。TableViewはすでにそれを行っています。

于 2012-07-09T17:50:43.603 に答える
0

では、をproperty / ivarとして-tableView:commitEditingStyle:forRowAtIndexPath:保存してから、を表示できます。indexPathActionSheet

ユーザーが削除を確認したら、データを削除し(!を保存しました)、テーブルビュー(または)indexPathからセルを削除します。を保持/解放することを忘れないでください。-deleteRowsAtIndexPaths:withRowAnimation:-reloadDataindexPath

于 2012-07-09T17:23:29.660 に答える
0

actionSheet = indexpath.row のタグを設定してごまかす

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    // If row is deleted, remove it from the list.
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
        UIActionSheet *registerActionSheet = [[UIActionSheet alloc] initWithTitle:@"Sure You Want To Delete?"delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:ACTION_SHEET_DELETE_BUTTON_TITLE otherButtonTitles: nil];
        registerActionSheet.tag = indexPath.row;
        registerActionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
        [registerActionSheet showInView:self.view];
    }
}

その後

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:ACTION_SHEET_DELETE_BUTTON_TITLE]) {

         //do deleting stuff here using actionSheet.tag as index

    }

}

編集:使用している複数のセクションの微妙さを見ました。indexPath プロパティを追加して拡張された UIActionSheet は、あなたの場合に役立ちますか?

またはタグを「x」桁の数字に設定します。前半はセクションを示し、後半は行を示します。

于 2012-07-09T17:54:56.703 に答える