0

特定の行を削除するメソッド commitEditingStyle: をオーバーライドするテーブル ビューがあります。同じ機能を実行する別のボタンがあります。コードを再利用できるように同じ commitEditingStyle: メソッドを呼び出すことは可能ですか、それとも別の関数を記述する必要がありますか。しかし、それはレプリケートされたコードになります。

ティア

4

1 に答える 1

0

自分がテーブル ビューのふりをしないでください。代わりに、実際の削除コードを別の関数でラップし、真のデリゲート メソッドの実装で、次のようにそれを呼び出します。

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)s forRowAtIndexPath:(NSIndexPath *)ip
{
    if (s == UITableViewCellEditingStyleDelete)
        [self deleteRowAtIndexPath:ip];
}

- (void)deleteRowAtIndexPath:(NSIndexPath *)ip
{
    // put actual deletion code here
}

そして、「シミュレート」したい場合は、次のように呼び出します。

[self deleteRowAtIndexPath:anIndexPath];
于 2012-08-08T11:04:26.597 に答える