iOS - как создать элемент панели навигации в контроллере представления? - PullRequest
4 голосов
/ 31 августа 2011

Я пытался создать кнопку возврата на панели навигации.

Вот мой код: -

UIBarButtonItem *barButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:nil]autorelease];
self.navigationItem.rightBarButtonItem = barButton;

Но на панели навигации ничего не отображается.

Я использую UIViewController, а не UINavigationController.

Является ли UINavigationController единственным способом добиться этого?

Любая помощь будет очень признательна.

Любая ссылка на хороший учебник будет отличной.

Спасибо.

Ответы [ 6 ]

5 голосов
/ 31 августа 2011

Я бы рекомендовал вытолкнуть этот контроллер вида из контроллера nvigation - вы получите все эти вещи бесплатно:

UIViewController *vc = [[UIViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *navCntrl1 = [[UINavigationController alloc] initWithRootViewController:vc];
5 голосов
/ 31 августа 2011

Без viewcontroller, имеющего контроллер навигации (то есть viewController.navigationController! = Nil), вы не сможете добавить его таким способом.

Одна вещь, которую вы можете сделать, если она создается пером, это просто перетащить элемент кнопки панели в панель навигации и связать его с помощью IBAction.

3 голосов
/ 31 августа 2011

Если ваш контроллер представления создается из файла NIB в Интерфейсном Разработчике, а на поверхности конструктора контроллера представления имеется панель навигации, самый простой способ сделать это - перетащить элемент кнопки панели из инспектора объектов.прямо на панель навигации справа.Затем вы создадите IBAction в своем заголовке и реализации, к которому подключитесь.

1 голос
/ 31 августа 2011

Я добиваюсь этого, вставляя кнопку прямо в UINavigationBar:

[yourUINavBar insertSubview:yourButton atIndex:1];
0 голосов
/ 31 августа 2011

Если вы хотите, чтобы панель навигации работала так, как вы ожидаете, создайте UINavigationController, используя ваш UIViewController в качестве корневого контроллера представления.Используйте тот UINavigationController, где вы сейчас используете свой UIViewController.

Проверьте UINavigationController на developer.apple.com для получения более подробной информации.

0 голосов
/ 31 августа 2011

Метод UIViewController -navigationItem работает только вместе с UINavigationController или другими вложениями UIViewController.Вам нужно будет получить доступ к UINavigationBar и установить элемент напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...