4

私のビューコントローラはUIViewControllerです。に追加UITableViewしましたUIView。テーブルビューの行が選択されると、プッシュセグエが新しいビューコントローラーを起動します。ただし、新しいView Controllerから戻ると、選択した行は選択されたままになります。最初のコントローラーがであったときはこの問題はありませんでしたが、ビューにアクティビティインジケーターを追加したかったので、UITableviewControllerこれをに変更する必要がありました。UIViewController私が気付いたもう1つのことは、最初のコントローラーがであったUITableviewControllerときviewDidLoadに、新しいビューコントローラーから戻ったときに呼び出されなかったことです(ただし、現在は呼び出されています)。

4

6 に答える 6

11

追加...

[tableView deselectRowAtIndexPath:indexPath animated:YES];

tableView:didSelectRowAtIndexPath:

于 2012-12-15T14:14:47.583 に答える
4

これを試して:

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

これはあなたを助けるでしょう...

于 2012-12-15T14:18:14.537 に答える
4

このメカニズムは、提案された回答のバリエーションであり、詳細ビューが消えたときに選択を削除しますが、ユーザーが詳細ビューにアクセスするために何を選択したかを知るのにも役立ちます。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self.tableView deselectRowAtIndexPath:self.tableView.indexPathForSelectedRow animated:YES];
}

これは、Appleが独自のアプリで行っていることのようです。例については、連絡先アプリで連絡先レコードが選択されたときの動作を参照してください。

于 2013-12-07T06:27:45.160 に答える
2

あなたは付け加えられます

[tableView deselectRowAtIndexPath:indexPath animated:YES];

tableView:didSelectRowAtIndexPath: 代理人で。

またはあなたはすることができます

-(void)viewWillAppear:(BOOL)animated
{
    [table reloadData];
}
于 2012-12-15T14:20:19.417 に答える
2

Swift 3.0:

tableView.deselectRow(at: indexPath, animated: true)

于 2017-02-09T20:51:50.580 に答える
-1
tableView.deselectRowAtIndexPath(indexPath, animated: true)

これは、質問に対する最新の回答として役立つ場合があります。

このトピックに関するいくつかの情報をここで見つけました。http://www.raywenderlich.com/81880/storyboards-tutorial-swift-part-2

于 2014-12-16T14:22:35.213 に答える