无法将自定义按钮添加到导航控制器的工具栏
Posted
技术标签:
【中文标题】无法将自定义按钮添加到导航控制器的工具栏【英文标题】:Trouble adding custom button to navigation controller's toolbar 【发布时间】:2013-11-14 22:08:03 【问题描述】:我有一个带有导航控制器的 tableview 控制器。我在视图底部添加了一个工具栏,现在我需要添加一个自定义按钮。我有以下代码(来自 viewDidLoad),它产生了奇怪的结果。当视图加载时,我会看到自定义按钮片刻,然后是一个空的工具栏。目前我只想加载一个自定义按钮。
self.navigationController.toolbar.barStyle = UIBarStyleBlackTranslucent;
[self.navigationController.toolbar sizeToFit];
CGFloat toolbarHeight = [self.navigationController.toolbar frame].size.height + 20;
[self.navigationController.toolbar setFrame:CGRectMake(CGRectGetMinX(self.view.bounds),
CGRectGetMaxY(self.view.bounds) - toolbarHeight,
CGRectGetWidth(self.view.bounds),
toolbarHeight)];
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithImage:[UIImage
imageNamed:@"stub_fav.png"]
style:UIBarButtonItemStylePlain
target:self action:@selector(addFavorite)];
[btn setTintColor:[UIColor whiteColor]];
[btn setImage:[UIImage imageNamed:@"stub_fav.png"]];
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:btn, nil];
[self.navigationController.toolbar setItems:toolbarItems];
有什么想法吗?谢谢!
【问题讨论】:
【参考方案1】:我不确定 btnAddFave 的用途,但它不是任何东西的子视图。我假设 btw 和 btnAddFave 应该具有相同的背景图像,如果是这样,您拼写 stub_fav.png 错误。不应该是 stub_fave.png
【讨论】:
抱歉,我编辑了原帖。 btnAddFave 不再在代码示例中 你能看到工具栏吗?你不应该有 [btn setImage:[UIImage imageNamed:@"stub_fav.png"]]; 是的,我可以看到工具栏,但它是空的 kk,先删除[btn setImage:[UIImage imageNamed:@"stub_fav.png"]];然后添加 UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];并将您的 toobarItems 更改为 initwithobjects: btn, flexSpace,nil] 然后 sizeToFit 您的工具栏以上是关于无法将自定义按钮添加到导航控制器的工具栏的主要内容,如果未能解决你的问题,请参考以下文章
如何在所有视图控制器中将自定义 uibarbuttonItem 添加到我的导航项?
使用 UINavigationController 工具栏的替代方法