【问题标题】:Reusable Date Picker using Interface Builder Possible?使用 Interface Builder 的可重用日期选择器可能吗?
【发布时间】:2011-12-19 09:44:01
【问题描述】:

我的问题类似于iPhone: Create a reusable component (control) that has some Interface Builder pieces and some code,但它并不能完全解决我的问题。而且,现在已经是一年后了,谁知道这期间发生了什么变化。

我正在使用 Interface Builder 和情节提要开发一个 iPad 应用程序。我需要在几个地方使用相同的日期选择器弹出框,但我无法弄清楚如何从不同的视图重用相同的组件。我在这方面花了几个小时,尝试了一些东西,阅读文档,谷歌搜索和 stackoverflow。

目前我已经完成了一项 hack 工作,让我获得了功能,但它并不漂亮。到目前为止,最有前途的方法是从一个按钮到一个包含日期选择器和一些其他小部件的新 UIViewController 的弹出框segue。这会在按下按钮时显示日期选择器弹出框,并且还会在按下按钮时将日期选择器动画化。

但是,我不知道如何从多个按钮中使用它。我已经尝试过代表,但我在某个地方搞砸了。

【问题讨论】:

  • 我遇到了同样的挑战,并实现了一组可重用的控件,这些控件使用块回调而不是协议。当您想在具有不同用例的几个不同地方使用相同的控制组件时,这使得它非常灵活和有用。示例项目和框架可在此处获得:github.com/toolmanGitHub/BDApplicationHelpers。它没有实现情节提要,但也许它会为您指明正确的方向。

标签: objective-c xcode ipad interface-builder xcode4.2


【解决方案1】:

您可以实现一个在其视图中具有日期选择器的视图控制器。我们将其命名为DatePickerViewController。这个类可以实现一个协议,比如datePickerViewController:pickedDate: 或类似的东西。当使用此日期选择器选择日期时,它可以通知其代表有关选择的日期。

然后,当您需要从按钮显示此日期选择器时,您可以创建一个新的UIPopoverController,创建一个新的DatePickerViewController 实例,将此实例作为其contentViewController 提供给弹出框并显示弹出框从你的按钮控制器。

要获取有关所选日期的信息,当您创建DatePickerViewController 时,您可以将您的呈现视图控制器设置为它的delegate,这样您就可以了解所选日期。

【讨论】:

    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    相关资源
    最近更新 更多