NavigationItem.SetRightBarButtonItems 抛出异常

Posted

技术标签:

【中文标题】NavigationItem.SetRightBarButtonItems 抛出异常【英文标题】:NavigationItem.SetRightBarButtonItems throws exception 【发布时间】:2011-11-15 23:22:22 【问题描述】:

如果我在 NavBar 上只设置一个右键,它就可以完美运行。 但是当我尝试设置多个按钮时,它们会出现,但单击它们会引发异常。

EventHandler pickPhotoClickHandler = (s,e) => ; //Do nothing
var pickPhotoBtn = new UIBarButtonItem(UIBarButtonSystemItem.Camera, pickPhotoClickHandler);

EventHandler sendBtnClickHandler = (s, e) => ; //Do nothing
var sendBtn = new UIBarButtonItem (UIBarButtonSystemItem.Done, sendBtnClickHandler);

NavigationItem.SetRightBarButtonItem (pickPhotoBtn, animated:true); // This works

var btns = new UIBarButtonItem[]sendBtn,pickPhotoBtn; // This doesn't 
NavigationItem.SetRightBarButtonItems(btns,true);       // go very far

我做错了什么?

【问题讨论】:

有趣 - 我认为 NavBar 不支持右侧多个按钮 @Jason:这是 ios 5.0 中引入的新功能(我在 4.3 应用程序中尝试使用它时发现了它)。 【参考方案1】:

我设法通过创建从UIbarButtonItem 派生的新类并使用 IntPtr 定义构造函数来解决此问题

public class UIBarBtn : UIBarButtonItem
        public UIBarBtn(IntPtr handle):base(handle)
        public UIBarBtn(UIBarButtonSystemItem si, EventHandler handler):base(si,handler)

现在可以了

【讨论】:

【参考方案2】:

看看这个:http://osmorphis.blogspot.com/2009/05/multiple-buttons-on-navigation-bar.html

如果你想为 iOS

久经考验! :D

【讨论】:

以上是关于NavigationItem.SetRightBarButtonItems 抛出异常的主要内容,如果未能解决你的问题,请参考以下文章