UINavigationBarItem以编程方式

时间:2012-04-23 12:40:14

标签: ios cocoa-touch uinavigationbar uinavigationitem

我有一个继承自UINavigationController的视图控制器。 在viewDidLoad我要设置rightBarButtonItem。 我跟随。

UINavigationItem* navItem = self.navigationItem;
UIButton* btnOptionsView = [[UIButton alloc] init];
[btnOptionsView setImage:[UIImage imageNamed:@"options.png"]
                forState:UIControlStateNormal];
[btnOptionsView sizeToFit];
UIBarButtonItem* btnOptions = [[UIBarButtonItem alloc] initWithCustomView:btnOptionsView];
navItem.rightBarButtonItem = btnOptions;

但按钮是不可见的,在调试模式下我注意到btnOptions.width为0,我也无法设置navItem的标题,类似这样的

[navItem setTitle:@"title"]

不会更改UINavigationItem的标题。

2 个答案:

答案 0 :(得分:0)

尝试更改按钮的标题

答案 1 :(得分:0)

您不应该继承UINavigationController。来自苹果文档:

  

UINavigationController类实现了一个专门的视图   管理分层内容导航的控制器。这个   class不用于子类化。相反,您使用的实例   在你想要你的应用程序的用户的情况下它   界面,以反映您的内容的层次性。