2

この質問は私の以前の質問と少し関連しています

私はiPhoneアプリケーションの初心者で、で学ぼうとしUITableViewていJSONます。this video私は学習のために続いた。

Stoaryboardを使用して同じ例を作成し、データを追加できる新しい画面も追加しました。今、私はデータを削除しようとしていました。だから私がやったのは、以下の方法の代わりに、各行にボタンを追加し、それをクリックするとデータを削除することだと思います。

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

しかし、行の詳細を取得する方法と削除する方法がわかりません。

どんな助け/提案もありがたいです。

以下は私の画面がどのように見えるかです。

ここに画像の説明を入力してください

ノート:

UITableViewCellCUSTOMタイプです。

4

3 に答える 3

2

以下のコードを使用して、編集アクションの削除に従ってデータモデルを更新します。

この以下のコードは、オブジェクトを配列およびテーブルから削除または削除するためのホットな例にすぎません。詳細については、以下のリンクを投稿するチュートリアルを確認してください。

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

     if (editingStyle == UITableViewCellEditingStyleDelete) {

         [arryData removeObjectAtIndex:indexPath.row];

        [tblSimpleTable reloadData];

     } 
}

または、セルのカスタムボタンでこの次のロジックを使用することもできます。

- (IBAction)deleteCustomCellWithUIButton:(id)sender
{
  NSIndexPath *indexPath = [yourTableView indexPathForCell:(UITableViewCell *)[[[sender superview] superview] superview]];
  NSUInteger row = [indexPath row];
  [yourTableView removeObjectAtIndex:row];
  [yourTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]  withRowAnimation:UITableViewRowAnimationFade];
}

詳細については、これらのチュートリアルを参照してください...

  1. iphone-sdk-tutorial-add-delete-reorder-UITableView-row

  2. 複数行の選択と編集

于 2013-01-09T12:56:23.880 に答える
1

各行にボタンを追加し、メソッドでbutton.tagにを設定できます。次に、ボタンメソッドで、にデータを入力するために使用されるエントリをから削除できます。indexPath.rowcellForRowAtIndex:ArrayUITableViewreloadData

于 2013-01-09T12:47:50.647 に答える
0

セルまたはセルのindexPathを取得する方法はたくさんあります。

  • (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
  • (NSIndexPath *)indexPathForCell:(UITableViewCell *)セル
  • (NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
  • (NSArray *)indexPathsForRowsInRect:(CGRect)rect
  • (NSArray *)visibleCells
  • (NSArray *)indexPathsForVisibleRows

UIButtonのIBActionを処理する場合は、次のようにindexPathForRowAtPointを使用します。

-(IBAction)myAction:(id)sender
{

CGPoint location            = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath      = [self.tableView indexPathForRowAtPoint:location];
UITableViewCell *swipeCell  = [self.tableView cellForRowAtIndexPath:indexPath];

NSLog(@"Selected row: %d", indexPath.row);
//......

}

またはindexPathForCell

- (void)buttonPressedAction:(id)sender
{
   UIButton *button = (UIButton *)sender;
   // Get the UITableViewCell which is the superview of the UITableViewCellContentView which is the superview of the UIButton
   (UITableViewCell*)cell = [[button superview] superview];
   int row = [myTable indexPathForCell:cell].row;
}

私は次のコードを取得しました: UITableViewで押されたUIButtonの検出

カスタムUITableViewCellボタンアクション?

于 2013-01-09T12:57:06.113 に答える