菜鸟教程小白 发表于 2022-12-13 13:53:38

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


                                            <p><p>我正在使用 iBook 之类的翻页转换 (<em>UIPageViewControllerTransitionStylePageCurl</em>) 来导航几个 UIViewController 页面。 </p>

<p>因此我实现了 <em>UIPageViewControllerDataSource</em> 委托(delegate)函数</p>

<pre><code>- (UIViewController *)pageViewController:
(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
</code></pre>

<p>和</p>

<pre><code>- (UIViewController *)pageViewController:
(UIPageViewController *)pageViewController viewControllerBeforeViewController:
(UIViewController *)viewController
</code></pre>

<p>当通过手势进行翻页时,这些会被正确调用。到目前为止,一切顺利。</p>

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

<p>如何<strong>以编程方式</strong>触发翻页到特定页面 (UIViewController)?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>当用户执行长滑动时,您可以将所需的 viewController(在您的情况下为第一页或最后一页)发送到方法的 viewControllers 参数:</p>

<pre><code>- (void) setViewControllers:(NSArray*)viewControllers
                  direction:(UIPageViewControllerNavigationDirection)direction
                   animated:(BOOL)animated
               completion:(void (^)(BOOL finished))completion;
</code></pre>

<p>有关更多详细信息,请参阅 Graham 的回答:</p>

<p> <a href="https://stackoverflow.com/questions/7208871/is-it-possible-to-turn-page-programmatically-in-uipageviewcontroller" rel="noreferrer noopener nofollow">Is it possible to Turn page programmatically in UIPageViewController?</a> </p>

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

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

<p>一个不好的方法是向 UIViewControllers 发送一个反向指针(存储为 WEAK 属性!)到你的 UIPageViewController 并调用 respondsToSelector: 。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 如何在没有手势的情况下以编程方式触发翻页转换?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10790956/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10790956/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 如何在没有手势的情况下以编程方式触发翻页转换?