Заголовок ViewController не обновляется

Я создаю приложение для iPad, используя шаблон приложения master-detail. В моем файле MasterViewController.m у меня есть этот код:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.detailViewController.title = @"testing";

}

При нажатии на ячейку в tableView ничего не происходит. Что я делаю неправильно?

1 ответ

Я создал проект, используя шаблон приложения master-detail, чтобы посмотреть, что произойдет.

В файле MasterViewController.m шаблон создает следующий метод:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        NSDate *object = _objects[indexPath.row];
        self.detailViewController.detailItem = object;
    }
}

Если я добавлю следующую строку в вышеупомянутый метод, self.detailViewController изменил заголовок на navigationView, обычно:

self.detailViewController.title = @"custom title";

Хотя это работает только при запуске приложения на iPad, потому что self.detailViewController создается и отображается на экране через self.splitViewController,

Когда вы запускаете это приложение на iPhone, self.detailViewController создается только после нажатия на ячейку. Следовательно, self.detailViewController будет nil внутри didSelectRowAtIndexPath:, Действие касания ячейки вызовет действие Segue Push, которое создаст DetailViewController,

Другие вопросы по тегам