0

以下のコードを参照してください。配列からオブジェクトを削除しますが、テーブルをリロードしません

- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    NSLog(@" commitEditingStyle");
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    {
        NSLog(@" commitEditingStyle Delete ");
        [self.arry removeObjectAtIndex:indexPath.row];
        [tableView reloadData];
    } else if (editingStyle == UITableViewCellEditingStyleInsert)
    {
        NSLog(@" commitEditingStyle Insert ");
        [self.arry insertObject:@"New Row" atIndex:[arry count]];
        [tableView reloadData];
    }
}  

また、私は&[tableView reloadData]で書きましたが、リロードしません。ViewWillAppearViewDidLoad

TableViewストーリーボードを介してViewControllerに追加され、IBoutletが.hファイルに追加されます

4

2 に答える 2

1
- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 

forRowAtIndexPath:(NSIndexPath *)indexPath {

if (editingStyle == UITableViewCellEditingStyleDelete) {
    [arryData removeObjectAtIndex:indexPath.row];
    [tblSimpleTable reloadData];
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
    [arryData insertObject:@"Mac Mini" atIndex:[arryData count]];
    [tblSimpleTable reloadData];
}

}

そのようなものを使用してください

于 2013-01-11T10:47:55.313 に答える
1

メッセージをアウトレット ( ie がある場合self.tableView) に送信するか、デリゲート メソッドを呼び出したテーブルビューに直接送信する必要があります ( a に[aTableView reloadData];注意しください)。

メソッド シグネチャを詳しく見てみると、tableView インスタンスが次のように渡されていることがわかりますaTableView

-(void)tableView:(UITableView *)aTableView ...

于 2013-01-11T10:48:22.890 に答える