我将在我的应用程序中的几个地方使用datePicker。我不想用UIPickerViewDelegate和UIPickerDatasource的委托方法“混淆”每个viewController,再加上我会一遍又一遍地执行相同的委派方法。iPhone上的UIDatePickerView的自定义包装类
每次玩日期选择器时,它的唯一目的就是在屏幕的一半上滑动,让用户选择一个日期然后再次消失。 我正在考虑一个实现了datePicker委托方法的包装viewController(DatePickerViewController),然后做了一个NSNotification与用户选择的值,这再次被viewController实例化DatePickerViewController。 这会让我成为一个解耦的datePicker,并让viewController实例化datePicker对DatePickerDelegate一无所知,但只知道可能会有包含NSDate的通知。对我来说似乎是理性的,就像我会用其他语言做的事情一样。但请纠正我,如果我在这里挖自己一个洞:)
当我开始打破这种情况下,我遇到了一些困难,我没有非常有经验的目标C和可可。 我可以构建一个viewController,它在viewDidLoad中提供了一个datePicker,运行这个会在屏幕的下半部分产生一个带有datePicker的空白屏幕。如果我使用实例化(自定义)DatePickerViewController的viewController中的“presentModalViewController”,它当然会滑动并覆盖整个屏幕。我希望用户仍然可以看到一半的视图。很像在iCal应用程序中设置事件的时间。 (除了他们将新的viewController推入堆栈)。啊,只是意识到我的意思就是当它滑入屏幕并覆盖一半屏幕时,就像键盘一样。
所以我想我的主要问题是:你可以建立一个viewController的行为像添加到视图时的键盘。但是,在添加的ViewController中执行所有这些操作,而不是在控制器中实例化视图。
希望这是有道理的:)
谢谢
TechZen嗨 非常感谢你:) 有几件事情我不明白;什么是“模型视图”? 我想结束CustomDatePicker.m和.h,实例化这个并将其添加到当前视图将向上滑动一个datePicker并选择一个日期将调用viewController eventHandler添加datePickerView。这意味着我只需要实现处理器方法并等待通知,不符合任何协议? 也许你的方式更好,但对我来说有点新,你能指出一个例子吗?再次感谢。 – RickiG 2009-11-10 18:20:25
我认为他意味着模态视图 - 这是一个视图,它需要所有的输入。其他视图不会获取用户交互事件。 一个对话框(错误/警告),不会让你点击其他任何东西,直到你确认它是一个模态视图的例子。 – 2009-11-10 23:26:51
感谢小量:) 我去了一个搜索狂欢的“模型视图”的思想有我还没有看到一个神奇的UIView类型。(上了一个数十亿“模型 - 视图 - 控制器”结果) 我想用户能够在其他地方点击,如键盘,没有什么阻止你这样做。我尝试在ActionSheet中包含一个Picker来获得'幻灯片'动画等,但是这确实会锁定屏幕。 也许我应该尝试构建视图并执行我自己的动画。 – RickiG 2009-11-10 23:38:34