为自定义UIBarButtonItem设置文本

7

我需要为自定义UIBarButtonItem设置标题。

我的代码如下:

UIButton* backToRecent = [UIButton buttonWithType:UIButtonTypeCustom];
[backToRecent setImage:[UIImage imageNamed:@"back.png"]forState:UIControlStateNormal];

[backToRecent addTarget:self action:@selector(backToRecent) forControlEvents:UIControlEventTouchUpInside];
[backToRecent setFrame:CGRectMake(0, 0, 60, 30)];

UIBarButtonItem* backButtonItem = [[UIBarButtonItem alloc]initWithCustomView:backToRecent];
[backButtonItem setTitle:@"Recent"];
partViewController.navigationItem.leftBarButtonItem = backButtonItem;
[backButtonItem release];

但是按钮出现时没有显示“最近”的文字。

2
尝试使用以下代码:partViewController.navigationItem.leftBarButtonItem.title = @"最近"; - Mudit Bajpai
2个回答

18

穆罕默德,我猜你可能已经解决了这个问题,但这里有一个简单的方法。希望这能帮助那些正在为相同问题苦苦挣扎的人:

    UIBarButtonItem * backButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Recent" style:UIBarButtonItemStyleBordered target:self action:@selector(backToRecent)];
    self.navigationItem.leftBarButtonItem = backButtonItem;

7

在UIButton上设置标题,而不是UIBarButtonItem。

[backToRecent setTitle:@"Recent" forState:UIControlStateNormal];

同时变量和方法的命名相同是不好的。

[backToRecent addTarget:self action:@selector(backToRecent) forControlEvents:UIControlEventTouchUpInside];

这不起作用,因为您使用了

[backToRecent setImage:[UIImage imageNamed:@"back.png"]forState:UIControlStateNormal];

尝试使用。
[backToRecent setBackgroundImage:[UIImage imageNamed:@"back.png"]forState:UIControlStateNormal];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接