2013-08-21 3 views
6

Я хочу изменить UIBarButtonItem's title.Почему я не могу изменить название UIBarButtonItem?

Но этот код не работает.

- (void)viewDidLoad { 
    ...   
    [self smay]; 
} 

- (void)smay { 
    ... 

    AppDelegate *apd = (AppDelegate*)[[UIApplication sharedApplication]delegate]; 
    NSString *SmayUse = [NSString stringWithFormat:@"%d月%d日", 
          apd.newyear,apd.newmonth]; 
    [_smay setTitle:SmayUse] 
} 

Я не знаю, как решить эту проблему.

Пожалуйста, скажите мне, как решить эту проблему.

+0

Вы проверили, нет ли SmayUse или нет? –

+0

Где/как вы объявляете 'UIBarButtonItem', я пропускаю его в этом примере. – rckoenes

ответ

-3

item.title = @"new title" должен работать.

+0

В основном ОП говорил о том, что что-то не должно произойти. По мнению других, это может быть неправильно инициализировано, но я не думаю, что это так. Я сомневаюсь, что причина в том, что я даже не знаю, о чем я даже не думаю. –

-1

Вы должны убедиться, что кнопка инициализирована. Если он является частью файла .xib, убедитесь, что он связан с вашим @property, который также связан с ним IBOutlet. В противном случае вам необходимо инициализировать его программно. Кроме того, вы должны использовать метод setTitle:forState:.

+0

UIBarButtonItem не имеет метода, называемого 'setTitle: forState:'. – hgwhittle

5

Инициализировать свой UIBarButtonItem так:

_smay = [[UIBarButtonItem alloc] initWithTitle:@"Your Title" 
      style:UIBarButtonItemStyleBordered 
      target:self action:@selector(yourMethod)]; 

self.navigationItem.rightBarButtonItem = _smay; 

Затем, если вы хотите изменить название где-нибудь еще в вашем коде:

[_smay setTitle:@"Your Other Title"]; 

IOS 8 и выше

UIBarButtonItemStyleBordered устарел, поэтому используйте ниже.

[[UIBarButtonItem alloc] initWithTitle:@"Your Title" 
       style:UIBarButtonItemStylePlain 
       target:self action:@selector(yourMethod)]; 
+0

Я сделал свой путь. Но код не может изменить заголовок. – Rukkora

+0

Отправьте код, в котором вы инициализируете свой UIBarButtonItem – hgwhittle

+0

- (void) oped: (NSInteger) newy: (NSInteger) newd – Rukkora

0

если и хотят изменить название панели навигации программно означает

UIBarButtonItem *aDoneItem = [UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered 
    target:self 
    action:@selector(toggleEdit:)]; 

navigationController.rightBarButtonItem = aDoneItem; 

aDoneItem.title = @"Something"; 
Смежные вопросы