これを行う標準的な方法は、cell.hidesAccessoryWhenEditing = YES
を使用することです。この編集は、通常はナビゲーションが無効になるモーダルアクションです。
実際に連絡先アプリケーションはカスタムテーブルセルを使用していますが、その動作によって判断して、画像がセルの右端にあるようにアクセサリをあまり使用しないと驚くことはありません。
あなたは削除ボタンが表示されたときに知りたい場合はそうのように、私は、あなたがセルのshowingDeleteConfirmation
プロパティにキー値オブザーバをインストールしてみてくださいすることをお勧めしたい:
[cell addObserver: self forKeyPath: @"showingDeleteConfirmation"
options: NSKeyValueObservingOptionNew context: NULL];
その後、あなたはオブザーバのコールバックを実装方法:
- (void)observeValueForKeyPath: (NSString *) keyPath ofObject: (id) object
change: (NSDictionary *) change context: (void *) context
{
if ([keyPath isEqualToString: @"showingDeleteConfirmation"])
{
UITableViewCell * cell = (UITableViewCell *) object;
BOOL isShowing = [[change objectForKey: NSKeyValueChangeNewKey] boolValue];
if (isShowing == NO)
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
else
cell.accessoryType = UITableViewCellAccessoryNone;
}
}
私はUITableViewCellのクラスは、このプロパティのKVOに準拠しているかどうかはわからないことに注意する必要がありますが、試してみる価値があるはずだ...
ジム 魅力的な作品です!私は本当にあなたが応答する時間を取っていただきありがとうございます... ありがとう、 グレッグ –
あなたのソリューションで誰かが起こった場合、完全にするには、以下を追加してください: UITableViewCell * cell = object; if(isShowing) - > if(!isShowing)... –
ありがとう、私はそれらを含めるように答えを更新しました。個人的に私は '== NO'を使用するのが好きです。 (C++のように)ブール型の特定のコンパイラサポートがない限り、前にあります。 ObjCのBOOL型はtypedefです(以前は文字サイズのものとchar型のBOOLとの比較で噛まれました)。 –