Может ли 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)


arrow_upward
3
arrow_downward

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

person Alexander    schedule 08.03.2012

arrow_upward
3
arrow_downward

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

person Martin Ullrich    schedule 08.03.2012