2010-02-18 4 views
3

Я строю подробный вид для UITableView. Детальный вид содержит UITableView, который имеет две строки, и я хочу, чтобы первый был выбран, когда открывается подробный вид. Я пытался использовать метод [selectRowAtIndexPath:animated:scrollPosition] в [viewWillAppear]:Сделать выбор UITableView перед представлением

- (void) viewWillAppear:(BOOL)animated { 
    [[self tableView] selectRowAtIndexPath:[NSIndexPath indexPathForRow:kStartDateRow inSection:kSection] 
            animated:NO 
          scrollPosition:UITableViewScrollPositionNone]; 
} 

Однако выбор не зависит от этого, и использовать его в [viewDidAppear] означает изменение выбора, как только вид переместился на место. Как сделать выделение до появления подробного представления на экране?

Вы можете увидеть пример поведения, который я хочу в приложении «Настройки». Перейдите в раздел Общие> Дата & Время> Дата установки & Время.

+0

Просьба показать код, который вы пытались просмотреть, в окнеWillAppear и какую ошибку вы получите, если таковой имеется. – DyingCactus

+0

Там вы идете. Если у вас возникли проблемы с форматированием кода, я надеюсь, что он доступен для чтения. – MJeffryes

ответ

3

Вы не указали никаких ошибок, но попробуйте сделать [[self tableView] reloadData] перед линией selectRowAtIndexPath.

+0

Это полностью сработало! Спасибо за ответ, но я озадачен тем, почему он сработал. – MJeffryes

+1

В этом случае, похоже, tableView не подходит для вызова reloadData непосредственно до просмотраWillAppear. Это: http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/TableView_iPhone/CreateConfigureTableView/CreateConfigureTableView.html и это: http://developer.apple.com/iphone/library/documentation/UserExperience/ Концептуальный/TableView_iPhone/TableViewAndDataModel/TableViewAndDataModel.html # // apple_ref/doc/uid/TP40007451-CH5-SW1 может помочь понять. – DyingCactus

Смежные вопросы