您如何知道UIPageViewController内显示的当前页面/视图是什么?

我重写了我的子视图的viewDidAppear方法,以便它们在它们的viewDidAppear方法中向父视图发送一个id.

然而,问题是:我无法可靠地使用该id作为显示页面的id.因为如果用户翻页,但中途决定停止翻页并将页面放回,则已经调用了viewDidAppear.(在curl 的页面后面可以看到视图).

也许只有在当前视图消失的情况下,我才应该切换到新的ID.但我想知道是否有更简单的方法来返回当前可见的视图?

推荐答案

您应该手动跟踪当前页面.

委托方法pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:将告诉您何时更新该变量.方法transitionCompleted:的最后一个参数可以告诉您用户是否完成了翻页转换.

然后,您可以通过执行以下操作来获得当前呈现的View Controller

self.viewControllers?.first

Ios相关问答推荐

SWIFT中具有可选返回类型和泛型的网络请求

创建带有Flutter 翼的会所头像

为什么iOS委派在KMM中不能正常工作?

当应用程序被杀死时是否还能获取位置?

如何将 AppIntent 添加到应用程序目标并在交互式小部件中使用它

在 Swift 中,对象如何被准确地从内存中移除?

SwiftUI HStack 文本字段对齐

Flutter iOS 构建失败:DVTCoreDeviceEnabledState_Disabled

react 本机 |错误:无法解析 node_modules/react-native/index.js 中的模块

SwiftUI:如何为 ScrollView 制作可拉伸(灵活)的粘性标题?

将 SwiftUI 与 @AppStorage 和动态函数调用一起使用

如何避免任何绑定空错误并更好地获取代码

Xcode 8,iOS 10 -为进程启动 WebFilter 日志(log)记录

缺少推送通知权利

如何告诉 SwiftUI 视图绑定到嵌套的 ObservableObjects

如何使用情节提要重新排列 UITabBarController 项目?

iOS 8 - 使用自定义演示关闭视图控制器后屏幕空白

是否可以在没有 Mac 的情况下为 iOS 制作 PhoneGap 应用程序?

SwiftUI 视图 - viewDidLoad()?

Xcode 8:函数类型不能有参数标签 destruct 我的构建