gpt4 book ai didi

objective-c - 如何在没有手势的情况下以编程方式触发翻页转换?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:15:28 27 4
gpt4 key购买 nike

我正在使用类似 iBook 的翻页转换 (UIPageViewControllerTransitionStylePageCurl) 来导航几个 UIViewController 页面。

因此我实现了UIPageViewControllerDataSource委托(delegate)函数

- (UIViewController *)pageViewController:
(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{

- (UIViewController *)pageViewController:
(UIPageViewController *)pageViewController viewControllerBeforeViewController:
(UIViewController *)viewController

当通过手势翻页时,这些会被正确调用。到目前为止,还不错。

除了这个默认行为之外,我想在页面的两侧添加一个长按手势识别器,作为快速移动到最后一页或第一页的快捷方式。我已经设法将手势识别器添加到页面,但我不知道如何在没有内置滑动的情况下让页面移动。

如何以编程方式触发页面转向特定页面(UIViewController)?

最佳答案

当用户执行长滑动时,您可以将所需的 viewController(在您的案例中是第一页或最后一页)发送到该方法的 viewControllers 参数:

- (void) setViewControllers:(NSArray*)viewControllers
direction:(UIPageViewControllerNavigationDirection)direction
animated:(BOOL)animated
completion:(void (^)(BOOL finished))completion;

有关详细信息,请参阅 Graham 的回答:

Is it possible to Turn page programmatically in UIPageViewController?

如果我没看错,正在显示的 UIViewController 包含按钮,您希望它们也能够调用此函数。

要从正在显示的 UIViewController 中以编程方式调用方法,您可以使 UIPageViewController 成为正在显示的 UIViewController 的委托(delegate),然后在按下按钮时调用委托(delegate)方法。

一个不好的方法是向 UIViewControllers 发送一个后向指针(存储为 WEAK 属性!)到您的 UIPageViewController 并在其上调用 respondsToSelector:。

关于objective-c - 如何在没有手势的情况下以编程方式触发翻页转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10790956/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com