7

私はtableViewsを使い始めたばかりで、viewControllerのtableviewに5つのセルがnavigationControllerに埋め込まれています。セルが押されると、別のビューが押し込まれます。私の問題は、押したセルが選択されているが、選択が消えないことです。私はこのコードで試しました:

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.tableView deselectRowAtIndexPath:indexPath animated:NO];

NewViewController *newViewController = [[NewViewController alloc] init];

newViewController.theTitle = [self.tableView cellForRowAtIndexPath:indexPath].textLabel.text;

[self.navigationController pushViewController: newViewController animated:YES];

}

tableView は viewDidLoad メソッドで初期化されます。

それでもセルをクリックすると、新しいviewControllerがプッシュされますが、セルは選択されたままです。ここで何が問題になる可能性がありますか?

4

4 に答える 4

33

コードを didDeselectRowAtIndexPath に入れました - didSelectRowAtIndexPath に入れます。didDeselect はコード補完で didSelect の前に表示されるため、これは犯しやすい間違いです。

于 2013-10-31T22:59:31.690 に答える
2

あなたも実装しましたtableView:didSelectRowAtIndexPath:か?このメソッドは、セルをタップするたびに呼び出されます。したがって、そこにコードを配置する必要があります。

使用しているメソッドはtableView:didDeselectRowAtIndexPath:、セルが選択され、別のセルをタップするたびに呼び出されます。

于 2013-10-31T23:00:54.560 に答える
1

あなたの問題は、間違った方法を使用していることだと思います。に変更didDeselectRowAtIndexPathdidSelectRowAtIndexPathます。

于 2013-10-31T22:59:54.503 に答える