我已经看到许多应用程序在uinavigationbar上有一个信息按钮(字母“i”,周围有一个圆圈)。如何添加此类按钮?
答案 0 :(得分:31)
之前的答案很接近,没有完全编译。这是你真正想要的:
// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
答案 1 :(得分:3)
上面的答案中有内存泄漏。您应该使用“autorelease”来避免它。我试图编辑答案,但到目前为止我没有成功。
// Info button
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfoView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];
这是正确的做法。
答案 2 :(得分:0)
您应该能够将“Info Light”类型按钮添加到UINavigationController当前正在显示的视图控制器的navigationItem。这样的东西可以放在你的视图控制器代码中:
- (void) viewDidLoad {
UIButton * info = [UIButton buttonWithType:UIButtonTypeInfoLight];
// set your button's target and selector for whatever action here.
self.navigationItem.rightBarButtonItem.customView = info;
}
答案 3 :(得分:0)
您还可以使用当前条形按钮项目的目标和选择器作为信息按钮。
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self.barButtonItem.target action:self.barButtonItem.action forControlEvents:UIControlEventTouchUpInside];
self.barButtonItem.customView = infoButton;
这样,与条形按钮项目相关联的任何动作或细分都将转移到您的信息按钮。