我将在我的应用程序的几个地方使用 datePicker。我不想用 UIPickerViewDelegate 和 UIPickerDatasource 的委托方法“弄乱”每一个 viewController,而且我会一遍又一遍地做同样的委托方法。
每次使用 datePicker 时,它的唯一目的是在屏幕上滑动一半,让用户选择一个日期,然后再次消失。我正在考虑实现 datePicker 委托方法的包装器 viewController (DatePickerViewController),然后使用用户选择的值执行 NSNotification,这再次被实例化 DatePickerViewController 的 viewController 捕获。这将使我成为一个解耦的 datePicker,并让实例化 datePicker 的 viewController 对 DatePickerDelegate 一无所知,但只知道可能会出现一个包含 NSDate 的通知。对我来说似乎很理性,就像我会用其他语言做的事情一样。但是,如果我在这里给自己挖一个洞,请纠正我:)
当我开始分解它时,我遇到了一些困难,我在 Objective C 和 Cocoa 方面不是很有经验。我可以构建一个 viewController,在它的 viewDidLoad 中显示一个 datePicker,运行这将导致一个空白的白色屏幕,并在屏幕的下半部分显示一个 datePicker。如果我从实例化(自定义)DatePickerViewController 的 viewController 中使用“presentModalViewController”,它当然会向上滑动并覆盖整个屏幕。我希望用户仍然有一半的视图可见。就像在 iCal 应用程序中设置事件的时间一样。(除了他们将一个新的 viewController 推到堆栈上)。啊,刚刚意识到我的意思与滑入并覆盖一半屏幕时的键盘完全一样。
所以我想我的主要问题是:你能否构建一个在添加到视图时表现得像键盘的视图控制器。但是在添加的 ViewController 中而不是在实例化视图的控制器中执行所有这些操作。
希望这是有道理的:)
谢谢