如何在 UIPickerView 上添加 UIToolbar? (iPhone/iPad)
Posted
技术标签:
【中文标题】如何在 UIPickerView 上添加 UIToolbar? (iPhone/iPad)【英文标题】:How to add a UIToolbar on top of UIPickerView? (iPhone/iPad) 【发布时间】:2012-05-28 12:31:57 【问题描述】:在我的应用程序中,我有一个按钮,按下该按钮时应显示一个 UIPickerView
,并在其顶部显示一个 UIToolbar
。当用户选择了UIPickerView
中的值后,他们会按下UIToolbar
中的一个按钮,该按钮将关闭UIPickerView
和UIToolbar
。
我遇到的问题是我无法找到将UIToolbar
添加到UIPickerView
的方法。通常我会有一个设置,其中UITextField
中的值受UIPickerView
中的选择影响。这样我可以简单地将UIToolbar
设置为inputAccessoryView
,但是,这一次我没有UITextField
。
请有人建议如何在UIPickerView
上添加UIToolbar
?
【问题讨论】:
我这里做了一个例子:***.com/questions/10704592/… 【参考方案1】:最好的解决方案是使用UIActionSheet
。
只需创建UIActionSheet
的全局,将您的UIToolbar
和UIPickerview
添加到UIActionSheet
作为子视图。
最后在主视图的子视图中添加UIActionSheet
。
希望对你有所帮助!!
【讨论】:
【参考方案2】:您需要将工具栏添加到 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.
希望这会有所帮助。
【讨论】:
以上是关于如何在 UIPickerView 上添加 UIToolbar? (iPhone/iPad)的主要内容,如果未能解决你的问题,请参考以下文章
在 UITabBarController 上添加 UIPickerView
如何在 UIActionSheet 中添加 UIPickerView