【发布时间】:2015-03-17 06:53:33
【问题描述】:
我一直在开发 iOS 应用,但在将图像用作导航栏中的左栏按钮项时遇到了问题。我尝试过以下方式:
UIImage *backButtonImage = [UIImage imageNamed:@"backbuttonCB"];
CGRect buttonFrame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);
UIButton *backButton = [[UIButton alloc] initWithFrame:buttonFrame];
[backButton setImage:backButtonImage forState:UIControlStateNormal];
UIBarButtonItem *backBarButtonItem= [[UIBarButtonItem alloc] initWithCustomView: backButton];
self.navigationItem.leftBarButtonItem = backBarButtonItem;
运行应用程序时,条形按钮似乎永远不会显示。
然后我继续尝试以下其他方法。
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"backbuttonCB"] style:UIBarButtonItemStylePlain target:nil action:@selector(methodname)];
这个方法确实有效。然而,显示的图像被染成蓝色,看起来并不像它本来的样子。更改此图像的色调没有帮助。
知道如何解决这个问题吗?
编辑:如果有帮助,请提供更多信息。 这是导航堆栈中的第一个视图。导航堆栈以模态方式显示,即有一个前一个视图控制器,并且在前一个视图控制器和导航控制器之间有一个模态segue。这是导航堆栈中的第一个视图。
编辑:问题已解决。 我认为这是 xcode 中的一个错误,因为当我重新启动 xcode 并使用实际设备而不是模拟器对其进行测试时,它运行良好。但是,似乎仍然无法在模拟器上运行。
【问题讨论】:
-
你试过设置按钮的背景图片吗?
-
你应该将 UIButton 初始化为
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];然后setFrame和setImage -
这两种方法都不起作用。
-
你试过导航栏上的自定义视图吗??
-
不,我现在就试试。我只是在非模态显示时尝试使用它并且运行良好。所以我认为这与此有关。
标签: ios cocoa-touch uinavigationbar uibarbuttonitem