Как обновить DetailView с помощью шаблона приложения MasterDetail

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

11
задан Dr.Kameleon 14 April 2012 в 12:42
поделиться