0

在我的应用程序中,我有一个按钮,按下该按钮时应在UIPickerViewUIToolbar顶部显示 a 。当用户在 中选择了值时,UIPickerView他们会按下 中的按钮,UIToolbar同时关闭UIPickerViewUIToolbar

我遇到的问题是我无法找到UIToolbarUIPickerView. 通常我会有一个设置,其中 a 中的值UITextFieldUIPickerView. 这样我可以简单地将 设置UIToolbarinputAccessoryView,但是,这一次我没有UITextField.

请有人建议如何UIToolbarUIPickerView?

4

2 回答 2

1

最好的解决方案是使用UIActionSheet.

只需创建全局UIActionSheet,将您的UIToolbar和 添加UIPickerviewUIActionSheet子视图。

最后添加UIActionSheet主视图的子视图。

希望对你有帮助。!!

于 2012-05-28T12:45:40.850 回答
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.
}

希望这可以帮助。

于 2012-05-28T12:59:57.563 回答