Может ли ViewController, представленный модально, использовать панель инструментов NavigationController

Я пытаюсь модально представить UITableViewController из контроллера представления в моей иерархии контроллеров навигации. В модальном представлении должна отображаться панель инструментов.

Можно ли использовать управляемую панель инструментов контроллера навигации в контроллерах представления, представленных модально, или мне следует реализовать для них свою собственную панель инструментов?

  • Если я представляю контроллер модально с [self.navigationController presentModalViewController:filterVC animated:YES];, панель инструментов не отображается.
  • Если я нажал на контроллер: [self.navigationController pushViewController:filterVC animated:YES];, отобразится панель инструментов.

Вот метод, который я запускаю из метода инициализации моего UITableViewController.

    -(void)configureToolBar {

    [self.navigationController setToolbarHidden:NO animated:YES];

    //ToolbarItem Done
    UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                              target:self 
                                                                              action:@selector(doneButtonPressed)];

    //ToolbarItem Cancel
    UIBarButtonItem *cancelItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel 
                                                                                target:self
                                                                                action:@selector(cancelButtonPressed)];
    //Flexible Space
    UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

    self.toolbarItems = [NSArray arrayWithObjects:flexibleItem, cancelItem, doneItem, flexibleItem, nil];

    [doneItem release];
    [cancelItem release];
    [flexibleItem  release];
}

person David Casillas    schedule 08.03.2012    source источник


Ответы (2)


Нет, вы не можете, потому что модальный контроллер представления становится дочерним по отношению к контроллеру представления, который его отображает, и этот контроллер представления является подвидом контроллера навигации (т.е. модальное представление не имеет связи с иерархией NavigationController). Тем не менее, вы можете представить контроллер навигации как контроллер модального представления, чтобы передать ему свои пользовательские кнопки панели навигации.

person Alexander    schedule 08.03.2012

Вы должны встроить свой VC в новый UINavigationController и снова установить элементы панели инструментов или просто добавить UIToolbar в нижнюю часть вашего VC.

person Martin Ullrich    schedule 08.03.2012