我想这个问题对于这里的很多人来说可能听起来很无聊。但我仍然是 iOS 开发的初学者,即使我正在改进,有些事情让我感到困惑。我的应用程序的菜单具有以下配置:包含导航栏的导航控制器,并嵌入包含导航项的视图控制器。我的导航栏子类 UINavigationBar 使其看起来像我想要的那样。
现在,我只想添加一个带有ai(信息)的自定义BarButtonItem,我已经绘制了它。所以这是我的问题:我怎样才能添加这个按钮?
非常感谢您的建议。
我想这个问题对于这里的很多人来说可能听起来很无聊。但我仍然是 iOS 开发的初学者,即使我正在改进,有些事情让我感到困惑。我的应用程序的菜单具有以下配置:包含导航栏的导航控制器,并嵌入包含导航项的视图控制器。我的导航栏子类 UINavigationBar 使其看起来像我想要的那样。
现在,我只想添加一个带有ai(信息)的自定义BarButtonItem,我已经绘制了它。所以这是我的问题:我怎样才能添加这个按钮?
非常感谢您的建议。
// 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!");
}
这可能不能直接回答您的问题,但如果您使用 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];