【问题标题】:How to add a UIToolbar on top of UIPickerView? (iPhone/iPad)如何在 UIPickerView 上添加 UIToolbar? (iPhone/iPad)
【发布时间】:2012-05-28 12:31:57
【问题描述】:

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

我遇到的问题是我无法找到将UIToolbar 添加到UIPickerView 的方法。通常我会有一个设置,其中UITextField 中的值受UIPickerView 中的选择影响。这样我可以简单地将UIToolbar 设置为inputAccessoryView,但是,这一次我没有UITextField

请有人建议如何在UIPickerView 上添加UIToolbar

【问题讨论】:

标签: iphone ipad uipickerview uitoolbar


【解决方案1】:

最好的解决方案是使用UIActionSheet

只需创建UIActionSheet 的全局,将您的UIToolbarUIPickerview 添加到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.
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      相关资源
      最近更新 更多