0

毎回 0 を返すコードを実装しました。ボタンを押した後に行の値が選択された状態で、可変配列から文字列を削除しようとしています。

関連コード:

- (IBAction)remove:(id)sender {
    NSIndexPath *selectedIndexPath = [_tableView2 indexPathForSelectedRow];
    [names removeObject:[NSString stringWithFormat:@"%i",selectedIndexPath.row]];
    testLabel.text=[NSString stringWithFormat:@"%i",selectedIndexPath.row];
    [_tableView2 reloadData];
}

テーブルビューが選択されている場所に関係なく、ボタンが押されるたびにテストラベルに0が表示されます。

投稿してほしい他の関連コード (tableView など) があれば教えてください。

4

2 に答える 2

1

UITableView の場合、選択された行の概念は、ユーザーが行に触れている間のみ有効です。そのため、indexPathForSelectedRow「選択した行の行インデックスとセクション インデックスを識別するインデックス パス、またはインデックス パスが無効な場合は nil」を返すと文書化されています。</p>

私の意見では、あなたは結果を取得しており、後でそのメソッドをnil呼び出すと、名前として表示されているゼロが返されます。rownil

解決策は、データ ソースの実装の残りの部分に依存しますが、タップされたインデックスdidSelectRowAtIndexPath:を後で remove メソッドで使用するために格納する必要があります。

allowsMultipleSelectionDuringEditingオプションを使用しておらず、テーブルを編集していないと思います)。

于 2013-06-11T20:32:12.753 に答える