6

我想换UIBarButtonItemtitle

但是这段代码不起作用。

- (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]
}

我不知道如何解决这个问题。

请告诉我解决这个问题的方法。

4

4 回答 4

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)];
于 2013-08-21T15:07:34.223 回答
0

如果您想以编程方式更改导航栏的标题意味着

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

navigationController.rightBarButtonItem = aDoneItem;

aDoneItem.title = @"Something";
于 2013-08-22T16:15:25.650 回答
-1

您必须确保按钮已初始化。如果它是 .xib 文件的一部分,请确保将它与您@property的也有IBOutlet关联的链接。否则,您需要以编程方式对其进行初始化。此外,您应该使用方法setTitle:forState:

于 2013-08-21T15:01:15.073 回答
-3

item.title = @"new title"应该管用。

于 2015-03-30T06:08:57.020 回答