我有以下代码用于放置rightbarbuttonitem
UIButton* rightbutton = [UIButton buttonWithType:UIButtonTypeCustom];
[rightbutton setBackgroundImage:[UIImage imageNamed:@"share-icon.png"] forState:UIControlStateNormal];
[rightbutton addTarget:self action:@selector(share:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:rightbutton] autorelease];
但它没有显示任何barbuttonitem。相反,如果我使用下面的代码然后出现barbutton项,但问题是我无法在barbuttonitem上使用此代码设置触摸事件。
UIImageView *iconView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"dashboard-icon.png"]];
UIBarButtonItem *icon = [[UIBarButtonItem alloc] initWithCustomView:iconView];
self.navigationItem.leftBarButtonItem=icon;
[icon release];
[iconView release];
答案 0 :(得分:7)
我的猜测是,你将UIBarButtonItem
添加到了错误的对象!
你需要将它添加到rootViewController(而不是像你可能那样添加到UINavigationController
)
YourRootViewController *theRootController = [[YourRootViewController alloc] init];
UINavigationController* navContainer = [[UINavigationController alloc] initWithRootViewController:theRootController];
UIButton* rightbutton = [UIButton buttonWithType:UIButtonTypeCustom];
[rightbutton setBackgroundImage:[UIImage imageNamed:@"share-icon.png"] forState:UIControlStateNormal];
[rightbutton addTarget:self action:@selector(share:) forControlEvents:UIControlEventTouchUpInside];
theRootController.navigationItem.rightBarButtonItem = rightbutton;
[navContainer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:navContainer animated:YES];
答案 1 :(得分:2)
如果您使用的是白色导航栏,请不要忘记在UIBarButtonItem上设置tintColor。我的按钮在那里,但看不见。
答案 2 :(得分:1)
您是否尝试为rightbutton
设置合适的框架?例如rightbutton.frame = (CGRect){CGPointZero, image.size};
另请注意:
在iOS 4及更高版本中,名称为 文件不需要指定 文件扩展名。在iOS 4之前, 你必须指定文件名 扩展
答案 3 :(得分:0)
使用swift 3.0 iOS 10.0
让customButton = UIBarButtonItem(标题:“右”,样式:.plain,target:self,action:#selector(yes)) customButton.width = 100.0 navigationItem.rightBarButtonItem = customButton
func yeah(发件人:UIBarButtonItem){ 打印(“哟你的男人/女人”) }
答案 4 :(得分:0)
为孩子设置rightBardButtonItems时遇到了这个问题 而不是最root的viewcontroller
视图控制器始终具有Navigationitem,但这不一定 表示它有一个导航栏可以显示在其中