1

UITableView セル内に削除ボタンがあります。このボタンの機能は、その特定のセルのコンテンツを Core Data から削除することです。このプロセスは元に戻すことができません。そこで、UIAlertView を追加して、ユーザーが削除に進む前に決定を確認できるようにしました。

内部にすべての削除ロジックをコーディングする必要があるようです...

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

ただし、これはデリゲート メソッドです。テーブル セルのインデックスパスがありませんか? UIAlertView ボタンがクリックされた後に UITableViewCell データにアクセスするにはどうすればよいですか?

私が今考えているアイデアの 1 つは、alertview.superviewUITableViewCell が見つかるまで使用をたどり、その indexPath プロパティにアクセスすることです。しかし、これはエレガントではないようです。この問題を解決する別の方法が必要ですか?

4

2 に答える 2

2

関連オブジェクトを使用します。ここで詳細に説明されています関連するオブジェクト

使用するオブジェクトを設定するには:

objc_setAssociatedObject(alert, &key, userCode, OBJC_ASSOCIATION_RETAIN);

そしてオブジェクトを取得します。

SOCode *userCode = objc_getAssociatedObject(alertView, &key);

インポートすることを忘れないでください。<objc/runtime.h>また、追加する必要がありstatic char keyます。両方のメソッドの範囲内にあるようにします。

参照: UIAlertView はデリゲートを介して文字列と int を渡すことができますか

于 2013-02-16T17:19:21.813 に答える
0

はモーダルであるため、(グローバル)変数に を表示する前にUIAlertViewの indexPath を保存しても問題はありません(安全のために、その変数をクリアすることもできます)。少なくともこれは私がしたことです。この問題が発生したとき。UITableViewCellUIAlertView- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

ps。これはベスト プラクティスとはほど遠いものですが、いくつかの基本的なチェックを行う限り、問題はありません。

于 2013-02-16T17:05:59.373 に答える