无法使用带有自定义视图的UIBarButtonItem通过代码将分段控件添加到工具栏

时间:2012-12-15 13:21:54

标签: ios uinavigationbar uibarbuttonitem uitoolbar uisegmentedcontrol

在我的应用程序中,我曾经在顶部有一个导航栏,在底部有一个工具栏,总共有4个按钮。我还在工具栏中有一个分段控件,当其他一个按钮切换时会显示。这一切都可以正常使用IBOutlet等。

其中一个按钮是粗略的用户跟踪按钮,我现在已将其替换为MKUserTrackingButton。为了实现这一点,我必须通过代码添加它(bottomToolBarIBOutlet UIToolBar}:

[bottomToolBar setItems:[NSArray arrayWithObjects:trackButton, flexible, keysButton, nil] animated:YES];

这样可以正常工作,但当然现在更长的分段控件(称为mapTypeControl)显示了,所以我这样做了:

UIBarButtonItem *segmentControlButton = [[UIBarButtonItem alloc] initWithCustomView:mapTypeControl];
[bottomToolBar setItems:[NSArray arrayWithObjects:trackButton, flexible, segmentControlButton, flexible, keysButton, nil] animated:YES];

但是段控件没有显示。如果我将它添加到它显示的导航栏中,但我无法将其显示在工具栏中。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我需要看到更多的代码才能真正理解这里发生的事情,而且我不清楚为什么要在代码中执行某些按钮,而在IB中执行某些按钮。但是,为什么不保留对包含IB中分段控件的UIBarButtonItem的引用?然后你不必销毁它并再次重新创建它,你可以将它插入bottomToolBar中设置的数组中。