我有一个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];
然而,我没有看到任何东西。这是为什么?
答案 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)