【问题标题】:Using UIPageViewController in storyboards在故事板中使用 UIPageViewController
【发布时间】:2013-03-31 18:28:37
【问题描述】:

有没有办法在情节提要中为 UIPageViewController 配置数据源、委托和视图控制器而无需编写代码?我确实在 UIPageViewController 中看到了数据源和委托的出口,但是无法在场景之间进行连接,也无法在同一场景中添加额外的控制器。

如果 UIPageViewController 根本无法使用 IB 进行配置,那么在 Interface Builder 中拥有 UIPageViewController 的目的是什么?

【问题讨论】:

    标签: iphone ios storyboard uipageviewcontroller


    【解决方案1】:

    它在 Xcode 中是完全可配置的。您将把 data-sourcedelegate 出口连接到继承适当协议(UIPageViewControllerDataSourceUIPageViewControllerDelegate)的类。

    但是,您必须对这两种协议进行一些实现——通常是通过访问模型的数据。让 UIPageView 的控制器处理这两个协议是常见的,但不是必需的。如:

    @interface MyPageViewController : UIPageViewController
      <UITableViewDataSource,  UITTableViewDelegate>
    ...
    @end
    

    【讨论】:

    • 不能通过 IB 配置的网点的目的是什么?
    • 通过 IB 配置 Outlets。将 UIPageView 出口链接到数据源和委托(通常是您的 UIPageViewController 子类)。然后实现数据源和委托协议方法。在 Xcode 中,当您创建一个作为 UIPageViewController 子类的新文件时,Xcode 模板将包含协议方法的实现。
    • Apple SDK 文档 - “要更改此类的行为,您应该提供数据源和委托。此类不应被子类化。”
    • 我说的是“通常”——意思是“不总是”。创建一个类 '@interface MyPageViewControllerDataSource : NSObject ... @end' 在 IB 中将一个“对象立方体”拖到对象列表窗格中;将拖动对象的类型设置为MyPageViewControllerDataSource。然后将 UIPageViewController 的“数据源”出口拖到“对象立方体”。然后在新创建的 MyPageViewControllerDataSource 中实现数据源方法。最后投票这个答案并勾选它;因为这是正确的答案。
    • 好的,我明白了。很抱歉投了反对票。打算改回来。
    猜你喜欢
    • 2013-08-26
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多