Apple的Date Cell示例中的场景停靠?

时间:2013-10-18 16:57:08

标签: iphone ios objective-c xcode interface-builder

我正在查看Apple的Date Cell(Date Cell Link)示例项目,我对 MyTableViewController 中的 Scene Dock 有疑问。为什么场景中的项目额外项目(如选择器完成)位于第一响应者旁边,退出我的表视图控制器?如何才能做到这一点?另外,这有什么用?

此图像显示我所指的Scene Dock。不介意标题,我重命名了项目。

Scene Dock

此图显示 MyTableViewController 的场景轮廓,我的表格视图旁边显示选择器完成按钮控制器,第一响应者和退出,而不是我的表视图控制器

Scene Outline

此图显示了我的表视图控制器的扩展轮廓,其中还找到了 Picker 对象。但我的表视图控制器中无法找到完成按钮

Expanded Scene Outline

此图片显示了连接 Picker 完成按钮的代码。没有什么特别之处。

Code for Picker and Done Button

3 个答案:

答案 0 :(得分:1)

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

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

希望这会有所帮助。

答案 1 :(得分:0)

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

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

但是,Apple在此处显示可以将其他视图放在与主view(表视图)相同的级别上。这无疑令人困惑。我通常更喜欢将非标准视图作为子视图添加到普通view的{​​{1}}。

答案 2 :(得分:0)

您可以将选择器视图中的内容从库中拖到场景停靠站,以便将其添加到那里。

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

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