将leftBarButtonItem添加到导航栏时出现问题

时间:2012-04-30 22:16:24

标签: iphone objective-c ios ipad uinavigationcontroller

我有一个UINavigationController,我的AHViewController作为根视图控制器。

然后我尝试从AHViewController的viewDidLoad中添加一个左栏按钮项:

UIButton * backButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [backButton addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside];
    [backButton setImage:[UIImage imageNamed:@"grid.png"] forState:UIControlStateNormal];
    UIBarButtonItem *backButtonBarItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    //[self.navigationItem setLeftBarButtonItem:backButtonBarItem];
    [self.navigationController.navigationItem setLeftBarButtonItem:backButtonBarItem];
    [backButtonBarItem release];

然而,我没有看到任何东西。这是为什么?

2 个答案:

答案 0 :(得分:1)

而不是:

[self.navigationController.navigationItem setLeftBarButtonItem:backButtonBarItem];

这样做:

[self.navigationItem setLeftBarButtonItem:backButtonBarItem];

UINavigationController使用顶视图控制器的navigationItem,而不是它的(UINavigationController)导航项属性。

答案 1 :(得分:0)

谢谢" Simon Golden"回答为我工作。

之前:(这不显示我的按钮)

self.navigationItem.LeftBarButtonItem: backButtonItem;

之后:(这为我工作,按钮显示)

[self.navigationItem setLeftBarButtonItem: backButtonItem];

如果StoryBoard在ViewController中没有LeftBarButtonItem和RightBarButtonItem,我们必须设置Button(setLeft / RightBarButtonItem)。

否则只需简单更改Item的属性(self.navigationItem.Left / RightBarButtonItem)

相关问题