我觉得这个问题对于很多人来说听起来很无聊。但我仍然是iOS开发的初学者,即使我在改进,有些事情仍然让我感到困惑。 我的应用程序的菜单具有以下配置:包含导航栏的导航控制器,以及嵌入包含导航项btw的视图控制器。 我的导航栏将UINavigationBar子类化,使其看起来像我想要的那样。
现在,我只想添加一个带有i(信息)的自定义BarButtonItem,我已经绘制了它。这就是我的问题:如何添加此按钮?
非常感谢您的建议。
答案 0 :(得分:1)
// Create the Info button
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
// Give it an action handler
[infoButton addTarget:self
action:@selector(infoButtonAction:)
forControlEvents:UIControlEventTouchUpInside];
// Create a UIBarButtonItem to "contain" the Info button
UIBarButtonItem *infoItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
// Add the UIBarButtonItem to the navigation bar (on the left side)
[self.navigationItem setLeftBarButtonItem:infoItem animated:NO];
动作处理程序:
- (void)infoButtonAction:(id)sender {
NSLog(@"Tapped on info button!");
}
答案 1 :(得分:1)
这可能不是您问题的直接答案,但如果您使用的是UINavigationController,它可能会阻止问题。而不是子类化UINavigationBar来定制它的接口,只需使用它的UIAppearance方法,然后像普通一样创建一个UINavigationController。
// Create navigation controller.
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myViewController];
// Customize navigation bar appearance.
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigation-bar-background"] forBarMetrics:UIBarMetricsDefault];