ios - 以编程方式更改 UIPageViewController 页面而无需重新加载

标签 ios objective-c uipageviewcontroller

我正在使用 UIPageViewController(包含两个 UIViewController 和一个 UITableViewController)在我的应用程序中导航。我使用 setViewControllers 方法添加了从一个页面移动到另一个页面的按钮,许多堆栈溢出问题中都建议使用该方法。但是,如果我从 View Controller B 开始,滑动到 View Controller A,然后使用建议的 setViewControllers 方法返回到 View Controller B,它不会简单地返回到页面,它会加载 View Controller B 的新实例。这这是一个问题,因为我在 View Controller B 中显示从 Internet 检索到的数据,因此每次都检索这个数据非常低效。 现在我知道这是可能的,因为 snapchat、tinder 和 fling 都可以做到。除非他们只是存储要显示的数据并每次都加载

最佳答案

根据您在评论中的阐述,您已经注意到页面 View Controller 的滚动样式确实恰好缓存了相邻的 View Controller 。但那是一个实现细节,你不应该依赖它。在我看来,您好像不恰本地使用了页面 View Controller ,尤其是因为您只有三个“页面”。我会建议其中之一:

  • 标签栏 Controller 。同样,这样做的好处是所有选项卡栏 Controller 的子级都保持事件状态。

  • ScrollView ,构成您自己的自定义父 View Controller 的基础。您可以将所有三个“页面”作为包含的 View 并排放置,然后滚动。这具有更大的优势,滚动可以正常工作(尽管您也可以让它为选项卡栏 Controller 工作)并且您完全掌控一切,因此 children 再次保持活力。

关于ios - 以编程方式更改 UIPageViewController 页面而无需重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29638847/

相关文章:

objective-c - 旋转 NSButton 不起作用

iphone - iOS - 内存管理 : Where is all this memory going?

ios - UIPageViewController:页面堆叠在另一个之上

ios - UITextfield 在 UIPageViewController (Swift) 中快速显示和关闭

ios - UIPageViewController 与 WKWebView

ios - 如何使用 PromiseKit 在不同的 swift 类中链接 promise ?

javascript - setTimeout 在 iPad 上比在 PC 上运行得更快

ios - 自定义 View 单元格的属性始终设置为 nil (UITableView)

ios - 按部分水平分页 CollectionView

objective-c - 什么是标准的 Objective-C BOOL getter 约定?