Я новичок в использовании разделенного представления для создания приложений для 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 должен быть обновлен.Однако, когда я нажимаю на элемент в таблице контроллера основного вида, ничего не происходит.