无法在MonoTouch中的NavigationItem.RightBarButtonItems中放置两个按钮

时间:2012-10-31 14:57:16

标签: c# iphone ios xamarin.ios uibarbuttonitem

在我的项目中,我需要将两个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)方法,但没有任何影响。

这是一个常见问题还是我做错了什么?

2 个答案:

答案 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应用程序中验证了这一点并得到了相同的行为。