Заголовок 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
,