在故事板中使用UIPageViewController

5

是否有一种方法可以在Storyboard中配置UIPageViewController的数据源,代理和视图控制器而无需编写代码? 我确实看到了UIPageViewController的数据源和代理的出口,但没有连接场景的方法,也没有将其他控制器添加到同一场景中的方法。

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

1个回答

3

这个功能在Xcode中是完全可配置的。您需要将data-sourcedelegate输出连接到继承相应协议(UIPageViewControllerDataSourceUIPageViewControllerDelegate)的类。

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

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

如果outlets不能通过IB进行配置,那么它们的目的是什么? - Nikita Leonov
Outlets通过IB进行配置。将UIPageView outlets与数据源和委托(通常为您的UIPageViewController子类)进行连接。然后实现数据源和委托协议方法。在Xcode中,当您创建一个UIPageViewController子类的新文件时,Xcode模板将包含协议方法的实现。 - GoZoner
苹果SDK文档 - “要更改此类的行为,您应该提供数据源和委托。此类不打算被子类化。” - Nikita Leonov
无法通过IB将这些插座设置为任何类。您是否有在IB中使用此类的实际经验,还是只是猜测? - Nikita Leonov
4
我说的“typically”,意思是“通常而言并非总是”。创建一个类'@interface MyPageViewControllerDataSource : NSObject <UIPageViewControllerDataSource> ... @end',在IB中将一个'object cube'拖到对象列表窗格中;设置所拖动对象的类型为MyPageViewControllerDataSource。然后将你的UIPageViewController的'data source' outlet拖到'object cube'上。接着在你新创建的MyPageViewControllerDataSource中实现数据源方法。最后点赞这个答案并勾选它,因为它是正确的答案。 - GoZoner
1
好的,我明白了你的意思。抱歉给你点了个踩。我会改回去的。 - Nikita Leonov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接