在我的项目中,我需要将两个UIBarButtonItem
添加到视图控制器的NavigationItem
。我用这段代码解决了这个问题:
UIBarButtonItem saveButton = new UIBarButtonItem("Save", UIBarButtonItemStyle.Bordered, (sender, e) => { //some saving code... }); UIBarButtonItem delButton = new UIBarButtonItem("Delete", UIBarButtonItemStyle.Done, (sender, e) => { //some deletion code... }); UIBarButtonItem[] items = new UIBarButtonItem[] { saveButton, delButton }; this.NavigationItem.RightBarButtonItems = items;
它在以前版本的MonoTouch中工作(在iOS 5上,包括设备和模拟器),但是(我想是这样)在升级到MonoTouch 6之后,只显示了数组中的第一个按钮。
我尝试使用NavigationItem.SetRightBarButtonItems(items, false)
方法,但没有任何影响。
这是一个常见问题还是我做错了什么?
答案 0 :(得分:1)
这是一个常见问题还是我做错了什么?
Touch.Unit,MonoTouch的单元测试运行器,使用RightBarButtonItems
并使用MonoTouch 6.0.x正常工作(显示两个按钮)。
OTOH我在你的代码片段中看到没有错(但它很短)。最好的办法是创建一个小的,自包含的应用程序,显示您的问题并将其附加到bug report。我们将能够查看它并查看错误(或者您可能自己发现问题,如果它在您自己的代码中,在执行测试用例时)。
答案 1 :(得分:1)
好的,就是这样。当您在UISegmentedControl
中已经有一个后退按钮和一些自定义视图(即navigationItem.TitleView
实例)时,我的问题中描述的情况就会发生。在这种情况下,当您使用navigationItem.RightBarButtonItems
数组设置UIBarButtonItems
并且空间不足以显示navigationItem.TitleView
和右侧按钮时,iOS只会渲染数组的第一个按钮,丢弃另一个。
我在一个原生的ObjC应用程序中验证了这一点并得到了相同的行为。