Модальный UINavigationController с UIToolbar - панель инструментов остается пустой - PullRequest
5 голосов
/ 31 января 2011

Я пытаюсь поместить простой UIToolbar внизу модально представленного UINavigationController. В этом примере он должен содержать две кнопки «отмена» и «что-то».

...

UINavigationController modalNavigationController = new UINavigationController(someViewController);
modalNavigationController.NavigationBar.BarStyle = UIBarStyle.Black;
modalNavigationController.Toolbar.BarStyle = UIBarStyle.Black;
modalNavigationController.ToolbarHidden = false;

UIBarButtonItem cancelButton = new UIBarButtonItem("cancel", UIBarButtonItemStyle.Plain, delegate {
  modalNavigationController.DismissModalViewControllerAnimated(true);
});
UIBarButtonItem flexSpace = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace, null);
UIBarButtonItem someButton = new UIBarButtonItem("something", UIBarButtonItemStyle.Plain, delegate {
  Console.WriteLine("here we are!");
});
modalNavigationController.ToolbarItems = new UIBarButtonItem[] { cancelButton, flexSpace, someButton };

parentController.PresentModalViewController(modalNavigationController, true);

...

Панель инструментов появляется и имеет черный стиль (как назначено), однако она не содержит никаких элементов. Я пытался назначить элементы перед установкой скрытого на false, безрезультатно. Я также попытался использовать Toolbar.Items и Toolbar.Hidden, а также SetToolbarItems () и SetToolbarHidden (), но без удачи.

Есть какие-нибудь намеки на то, что здесь может быть не так? Спасибо

EDIT:
Большинство примеров в сети создают свой собственный UIToolbar и добавляют его в качестве подпредставления. Это не требуется с UINavigationController, верно? AFAICT, у него есть один встроенный.

1 Ответ

6 голосов
/ 31 января 2011

Не берите в голову, я почему-то пропустил, что элементы панели инструментов должны предоставляться для каждого отдельного подвид.

Это работает:

someViewController.ToolbarItems = new UIBarButtonItem[] { cancelButton, flexSpace, someButton };
...