Может ли представленный ViewController модально использовать панель инструментов NavigationController - PullRequest
0 голосов
/ 08 марта 2012

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

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

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

Вот метод, который я запускаю из метода init моего 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];
}

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

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

2 голосов
/ 08 марта 2012

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

...