【发布时间】:2012-02-27 08:21:12
【问题描述】:
问题是这样的。我有一个 PageViewController 作为我的根视图控制器。使用 PageViewController 类的 ViewDidLoad 块中的 SetViewControllers 初始化第一页是有效的,使用页面的手势识别器来回翻转页面也是如此。此根视图控制器可通过 AppDelegate 在应用程序范围内使用。
我想添加从书中任何地方返回第一页的功能,因此在我的 PageViewController 类中创建了一个公共方法,该方法简单地调用了 SetViewControllers 方法。虽然这似乎有效,但我注意到了某些怪癖。在后台循环播放的音乐(同样,在 AppDelegate 中声明的 AVAudio 对象)会重新启动,并且在使用手势识别器再次翻页之前,不会触发 ViewDidLoad 块。
我使用 GetNextViewController 尝试了同样的事情,但这只是为 PageViewController 引用引发了一个空引用异常。我假设我没有掌握的控件之间存在某种关系,可能与 PageViewController 的数据源有关。我尝试将此委托给一个覆盖默认方法的类,以及使用 Mono 的 this.pageViewController.GetNextViewController = delegate(method signature) 语法无济于事。
有人对我的问题有任何见解吗?
编辑:AppDelegate.cs 的代码可以在这里查看:https://gist.github.com/1747537 和 PageViewController.cs 的代码在这里:https://gist.github.com/1747559。
【问题讨论】:
-
我假设你是 UIPageViewController 的子类,对吧?这个控制器不应该被子类化,但一些代码会有所帮助。
标签: ios ipad mono xamarin.ios uipageviewcontroller