Я новичок в использовании разделенного представления для создания приложений iPad. Когда я впервые создаю проект, просто используя стандартный шаблон приложения MasterDetail (Xcode 4.2), он создает MasterViewController и DetailViewController.В шаблоне есть следующий метод, который вызывается, когда строка выбирается из всплывающей таблицы (главный контроллер подробного представления):
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
if (!self.detailViewController)
{
self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}
[self.navigationController pushViewController:self.detailViewController animated:YES];
Теперь я понимаю, что когда вы используете обычный контроллер навигации, если вы программируете для iPhone, вы просто делаете это тип вещи, которую нужно поместить на другой контроллер представления в стек. Однако с этим шаблоном он просто помещает подробное представление во всплывающее окно, а не обновляет то, что уже есть. Я смущен тем, что мне нужно обновить, чтобы выбрать что-то из всплывающего окна (основное подробное представление), а затем получить обновление detailView.
Обновление:
Чтобы попробовать и протестировать «detailItem», который уже настроен для вас в DetailViewController, я закомментировал pushViewController и добавил следующее:
//[self.navigationController pushViewController:self.detailViewController animated:YES];
self.detailViewController.detailItem = @"Test";
// setter in detailViewController
- (void)setDetailItem:(id)newDetailItem
{
if (_detailItem != newDetailItem) {
_detailItem = newDetailItem;
// Update the view.
[self configureView];
}
if (self.masterPopoverController != nil) {
[self.masterPopoverController dismissPopoverAnimated:YES];
}
}
- (void)configureView
{
// Update the user interface for the detail item.
// detailDescriptionLabel.text is a IBOutlet to the label on the detailView
if (self.detailItem) {
self.detailDescriptionLabel.text = [self.detailItem description];
}
}
Согласно этому коду, текст метки на detailViewController следует обновить. Однако, когда я нажимаю на элемент в таблице контроллера главного представления, ничего не происходит.