Как изначально выбрать строку в UITableView - PullRequest
9 голосов
/ 04 декабря 2009

Я не могу найти подходящее место, чтобы позвонить с selectRowAtIndexPath:animated:scrollPosition: на , первоначально , выбрать строку в UITableView. Табличные данные не были загружены при инициализации контроллера табличного представления, поэтому я не могу сделать выбор сразу после инициализации моего UITableViewController (в противном случае возникнет исключение «Over over»).

Ответы [ 3 ]

6 голосов
/ 12 января 2010

Вам необходимо использовать viewWillAppear: для установки состояния представления перед его отображением, каждый раз, когда оно появляется, даже если представление уже отображалось ранее. Любое невидимое представление в UITabViewController или UINavigationViewController может быть выгружено в любое время, поэтому вы не можете рассчитывать на невидимое представление для сохранения его состояния.

Или, для более точного управления, реализуйте loadView, viewDidLoad и viewDidUnload.

Если вы поддерживаете свою собственную иерархию контроллеров представлений, вам придется вручную пересылать сообщения viewWillAppear, viewWillDisappear и т. Д. Вашим контроллерам подвидов.

3 голосов
/ 04 декабря 2009

Попробуйте перегрузить viewWillAppear:animated или viewDidAppear:animated и обязательно вызовите super.

Обязательно позвоните также selectRowAtIndexPath:indexPath animated:NO, он выберет без задержки.

2 голосов
/ 12 января 2010

Вы можете установить любую ячейку, выбранную в методе cellforrowatindexpath для uitableview. С помощью cell.selected = YES;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...