Текст кнопки «Назад» контроллера навигации: представлен модально - PullRequest
0 голосов
/ 03 апреля 2012

Я создаю массив контроллеров представления, добавляю их в контроллер UINavigation, а затем представляю их модально.

Однако я не могу установить текст для кнопки «назад» в каждом представлении, кроме слова «назад».

Это код:

//The View Controllers and Array
VC1 *vc1 = [[VC1 alloc] initWithNibName:@"VC1" bundle:nil];
VC2 *vc2 = [[VC2 alloc] initWithNibName:@"VC2" bundle:nil];
VC3 *vc3 = [[VC3 alloc] initWithNibName:@"VC3" bundle:nil];
NSArray * viewControllers = [NSArray arrayWithObjects:vc3, vc2, vc1, nil];

// Create the nav controller and set the view controllers.
UINavigationController*  theNavController = [[UINavigationController alloc]
initWithRootViewController:vc3];
[theNavController setViewControllers:viewControllers animated:NO];

// Display the nav controller modally.
[self presentModalViewController:theNavController animated:YES];

Я пробовал в инициализации каждого VC следующее:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] init];
barButton.title = @"Acknowledge Briefings Read";
self.navigationItem.backBarButtonItem = barButton; 

... но это не работает.Есть идеи?Большое спасибо.

Также, в связи с этим, я бы идеально хотел перемещаться по стеку в направлении «вперед».Возможно ли это с помощью навигационного контроллера?

Ответы [ 3 ]

1 голос
/ 03 апреля 2012

Эй, это может сработать для тебя:

self.navigationController.navigationBar.backItem.title = @"Acknowledge Briefings Read"; 

Этот код должен идти в viewController, который в настоящее время виден. Вы должны добавить его в viewWillApear

Приветствия

0 голосов
/ 03 апреля 2012

Тест кнопки «Назад» автоматически устанавливается на атрибут title UIViewController, который находится на вершине стека.Поэтому в viewDidAppear или viewDidLoad каждого контроллера представления установите для self.title текст, который вы хотите отображать в кнопке «Назад», когда новое представление помещается в стек.

0 голосов
/ 03 апреля 2012

Вы не можете делать что-либо для просмотра в init. Вам нужно дождаться viewDidLoad (или willAppear или didAppear), так как ничего не было нарисовано в init (в случае с контроллером nav, предыдущий элемент будет затронут).

Вот что я делаю (в viewDidLoad):

UIBarButtonItem *doneButon = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneButtonPressed)];
[self.navigationItem setRightBarButtonItem:doneButon];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...