将 leftBarButtonItem 添加到导航栏的问题
Posted
技术标签:
【中文标题】将 leftBarButtonItem 添加到导航栏的问题【英文标题】:issue adding a leftBarButtonItem to nav bar 【发布时间】:2012-04-30 22:16:23 【问题描述】:我有一个 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];
但是,我什么也没看到。这是为什么呢?
【问题讨论】:
【参考方案1】:代替:
[self.navigationController.navigationItem setLeftBarButtonItem:backButtonBarItem];
这样做:
[self.navigationItem setLeftBarButtonItem:backButtonBarItem];
UINavigationController 使用顶视图控制器的 navigationItem,而不是它的(UINavigationController 的)导航项属性。
【讨论】:
@adit 尝试使用 -initWithTitle:style:target:action: 制作一个简单的 UIBarButtonItem,看看是否可以让它以这种方式出现。如果这可行,则问题是使用 UIButton 作为栏按钮项的自定义视图,或者您设置 UIButton 的方式存在问题。【参考方案2】:感谢“Simon Golden”为我解答工作。
之前:(这不会显示我的按钮)
self.navigationItem.LeftBarButtonItem: backButtonItem;
之后:(This Work for me 和按钮出现)
[self.navigationItem setLeftBarButtonItem: backButtonItem];
如果 StoryBoard 在 ViewController 中没有 LeftBarButtonItem 和 RightBarButtonItem,我们必须设置 Button(setLeft/RightBarButtonItem)。
否则只需简单更改Item的属性(self.navigationItem.Left/RightBarButtonItem)
【讨论】:
以上是关于将 leftBarButtonItem 添加到导航栏的问题的主要内容,如果未能解决你的问题,请参考以下文章
[iOS类别的使用]---导航栏leftBarButtonItem图标修改