如何在UIPickerView上添加UIToolbar? (iPhone / ipad公司)

时间:2012-05-28 12:31:57

标签: iphone ipad uipickerview uitoolbar

在我的应用程序中,我有一个按钮,按下时应该在其上方显示UIPickerView并带有UIToolbar。当用户在UIPickerView中选择了值时,请按UIToolbar中的一个按钮,该按钮会同时取消UIPickerViewUIToolbar

我遇到的问题是我无法找到将UIToolbar添加到UIPickerView的方法。通常情况下,我会设置UITextFieldUIPickerView中的值受UIToolbar选择影响的设置。这样我就可以将inputAccessoryView设置为UITextField,但是,这次我没有UIToolbar

有人可以建议如何在UIPickerView之上添加{{1}}吗?

2 个答案:

答案 0 :(得分:1)

最佳解决方案是使用UIActionSheet

只需创建UIActionSheet全局,将您的UIToolbarUIPickerview添加到UIActionSheet作为子视图。

最后在主视图的子视图中添加UIActionSheet

希望它会帮助你。!!

答案 1 :(得分:1)

您需要将工具栏添加到UIPickerView的父容器视图中。因此,如果您知道该视图是什么,那么您可以将工具栏添加到该视图中。如果容器是NavigationViewController,您可以将工具添加到它的工具栏。

如果你没有父视图,那么创建一个 - 例如,添加一个新视图类 - 给它一个工具栏并在同一视图中添加PickerView。

要同步界面中的内容,通常更容易使用NSNotifications:

在选择器视图中......

NSArray *keys = [NSArray arrayWithObjects:@"myParameterName", nil];
NSArray *objects = [NSArray arrayWithObjects: myObject, nil];
NSDictionary *myDictionaryOfParameters = [NSDictionary dictionaryWithObjects: objects forKeys: keys];

[[NSNotificationCenter defaultCenter] postNotificationName:@"myPickerViewChanged" object:nil userInfo: nil];

然后在工具栏中添加一个观察者......

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(refreshView) name:@"myPickerViewChanged" object: nil];

//   ...

- (void) myPickerViewChanged: (NSNotification *) note  {
    NSDictionary * myDictionaryOfParameters = note.userInfo;
// Enable toolbar buttons, etc.
}

希望这有帮助。