我有一个简单的按钮添加到UINavigationBar,Min OS是3.2,我们使用默认编译器进行编译。我有MT 5.0:
saleImg = UIImage.FromFileUncached (shoppingImg);
saleButton = new UIBarButtonItem ("", UIBarButtonItemStyle.Bordered, (s, o) => {ItunesHelper.Open (); });
saleButton.SetBackgroundImage(saleImg,UIControlState.Normal,UIBarMetrics.Default);
saleButton.SetBackgroundImage(saleImg,UIControlState.Selected, UIBarMetrics.Default);
saleButton.SetBackgroundImage(saleImg,UIControlState.Highlighted, UIBarMetrics.Default);
但是当它运行时会抛出错误:
Objective-C exception thrown. Name: NSInvalidArgumentException Reason: -[UIBarButtonItem setBackgroundImage:forState:barMetrics:]: unrecognized selector sent to instance 0x76d4d00
答案 0 :(得分:2)
UIBarButtonItem.SetBackgroundImage
引入UIBarButtonItem
方法。由于您收到“无法识别的选择器...”消息,我只能假设您在iOS版本低于5.0的设备上运行应用程序。
如果您希望自己的应用向后兼容,请创建一个按钮并使用UIBarButtonItem(UIView)
构造函数初始化UIButton button = UIButton.FromType(UIButtonType.Custom);
button.SetBackgroundImage(saleImg, UIControlState.Normal);
button.TouchUpInside += (s, o) => {ItunesHelper.Open (); };
UIBarButtonItem saleButton = new UIBarButtonItem(button);
:
{{1}}
设置最低操作系统版本并不意味着MonoDevelop或编译器会通知您API兼容性。它只是Info.plist中的一个设置,它将确定您的应用程序是否将在App Store上显示该版本的设备。