2013-11-13 4 views
0

У меня есть кнопка pushg от кнопки к новому виду и хотелось бы изменить название подставки. Можете ли вы помочь мне, что не так с этим кодом?prepareForSegue change backbutton title

Вот фрагмент кода:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"settings"]) { 
     NSLog(@"prepareForSegue: %@%@", segue.identifier, segue.destinationViewController); 

     UIViewController *viewController = [segue destinationViewController]; 
     viewController.navigationItem.backBarButtonItem.title = @"Back"; 

     [segue.destinationViewController setTitle:@"WeekView"]; 
    } 
} 

SETTITLE работает. Заранее спасибо!!

ответ

0

self.navigationItem.backBarButtonItem по умолчанию ноль. Поэтому, если вы установите для него заголовок, ничего не произойдет, потому что это влияет на нулевой адресный объект. Это не приведет к ошибке, поскольку object-c позволяет отправлять сообщения нильскими объектами.

ОТВЕТ: Вы должны создать свой собственный объект кнопки для того, чтобы установить это название. Вы можете initWithTitle или создать его, а затем установить заголовок после (Explianed HEre)

Для справки:.

newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"Home" style: UIBarButtonItemStyleBordered target: self action: @selector(Home:)]; 
    self.navigationItem.leftBarButtonItem=newBackButton; 
+0

Я также попытался изменить текст в файле .m нового вида. Но это тоже не работает. Ты знаешь почему? - (IBAction) Тест: (ID) отправитель { self.navigationItem.backBarButtonItem.title = @ "Назад"; } – mtStack

+0

Пожалуйста, прочитайте ответ полностью. Вам нужно создать пользовательский UIBarbutton. Это может быть связано с некоторыми контроллерами для детей и UInavigation Stack –

0

Мнение UIViewController в еще не загружено, поэтому сначала установить заголовок, а затем код вида нагрузки происходит, и он устанавливает заголовок по умолчанию. Попробуйте установить заголовок кнопки «Назад» в методах viewDidLoad или viewWillAppear контроллера представления назначения.

свойство название контроллера представления устанавливается и работает, потому что переход уже инстанцирован сам контроллер представления.

0

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]]; Обычно это должно быть сделано в viewDidLoad, изменяя заголовок кнопки навигации, когда segue на другой контроллер представления не является хорошей идеей.

Смежные вопросы