1

我正在查看 Apple 的 Date Cell ( Date Cell Link ) 示例项目,我对MyTableViewController中的Scene Dock有疑问。为什么在First ResponderExitMy Table View Controller旁边的场景中有额外的项目(如PickerDone ) ?如何才能做到这一点?另外,这有什么帮助?

这张图片显示了我所指的场景码头。不要介意标题,我重命名了该项目。

场景码头

此图显示了MyTableViewController的场景大纲,其中PickerDone 按钮显示在My Table View Controller、First Responder 和 Exit旁边,而不是在My Table View Controller中。

场景大纲

此图像显示了My Table View Controller的扩展轮廓,其中还找到了Picker对象。但在My Table View Controller中找不到Done Button

扩展场景轮廓

此图显示了连接到PickerDone 按钮的代码这并没有什么特别之处。

选择器和完成按钮的代码

4

3 回答 3

1

当我在控制器的场景中(而不是在单元格中)删除 UIDatePicker 时,内联 DatePicker 仍然有效。

我认为此示例旨在支持 iOS 6.1 或更早版本,以将 UIDatePicker 显示为外部滑入式视图,因此它需要在控制器中用于 IBOutlet 连接。

希望这会有所帮助。

于 2013-10-26T06:41:15.487 回答
0

通常,MyTableViewController不应该是类型UITableViewController,而是它的超类UIViewController。这通常是必要的,因为UITableViewController根据定义,它的主要view属性设置为表视图。然后很难将其他视图放入此视图中。

但是,使用UIViewController,您可以添加任意数量的视图。在这种情况下,这对于容纳按钮和选择器是必要的。表格视图控制器功能仍然可以通过手动添加UITableViewDataSourceUITableViewDelegate协议并覆盖适当的方法来实现。

但是,Apple 在这里表明可以通过将其他视图放置在与主视图相同的级别view,即表视图。诚然,这很令人困惑。我通常更喜欢将非标准视图作为子视图添加到viewplain UIViewController

于 2013-10-18T17:37:03.033 回答
0

您可以将诸如选择器视图之类的内容从库中拖到场景停靠栏中以将它们添加到那里。

至于这样做的效用,我不知道那会是什么。

在这种情况下,我认为选择器和完成按钮是代码编写者在尝试想法并忘记删除它们时留下的。要验证是否只需删除选择器视图和完成按钮,看看一切是否仍然有效。

于 2013-10-18T19:53:17.587 回答