Как увидеть всегда выбранную строку tableView? (IPhone) - PullRequest
0 голосов
/ 09 марта 2010

У меня есть проблема с выбранной строкой tableView. Когда я выбираю выбранную строку, но когда я возвращаюсь в предыдущий контроллер навигации, строка отменяется. Могу ли я сделать, чтобы iPhone запомнил, какая строка была выбрана, и когда я нажимаю на контроллер, она запоминает выбранную строку и может ли она быть синей?

Ответы [ 2 ]

1 голос
/ 09 марта 2010

Обычно объекты «запоминают» вещи, сохраняя их в переменных экземпляра. Поэтому простой способ отслеживать выбранную строку - добавить переменную экземпляра и свойство типа NSIndexPath * в контроллер списка. Затем вы можете использовать свойство для хранения indexPath, переданного методу -tableView:didSelectRowAtIndexPath: контроллера табличного представления.

Тогда ваш контроллер списка может переопределить унаследованный -viewWillAppear: метод, чтобы отправить сообщение в табличное представление, чтобы повторно выбрать строку, как показано ниже:

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

    // Good idea to reload the table view's cells
    // in case the underlying data was changed by
    // another view controller.
    [[self tableView] reloadData];

    // Assuming you added a selectedIndexPath property
    // to your list controller...
    //
    if ([self selectedIndexPath] != nil)
    {
        // Select the row. Note that you need to be sure
        // that the table view is scrolled so that the
        // selected row is visible.
        [[self tableView] selectRowAtIndexPath:[self selectedIndexPath]
                                      animated:NO
                                scrollPosition:UITableViewScrollPositionMiddle];
        // Get rid of the saved selection
        [self setSelectedIndexPath:nil];
    }
}
0 голосов
/ 09 марта 2010

Я предлагаю сохранить состояние в iPhone, сохранив выбранный индекс строки в файл (info.plist? Properties.plist). Затем, когда вы вернетесь в это представление, вернете выбранную строку из файла и измените индекс выбранной строки.

...