我有適用於iPad/iPhone的應用程序,它可以在所有版本以及除iPhone 4S,5和5s之外的所有版本上運行。UIPageViewController - 以編程方式更改頁面無法在iPhone 4s/5/5s上工作
我有一個UIPageViewController與WebViews作爲單元格。 我有另一個簡單的UICollectionView用作頁面選擇器:它的功能是讓用戶跳轉到所選的第X頁。
我的代碼非常簡單:我將觸摸到的單元格的索引傳遞給UIPageViewController以應用我的「slideToPage(index)」函數。
對於iPhone 4S/5/5S,當動畫完成後,它立即返回到舊的頁面,因此用戶不能跳頁,他只能打開一個網頁,在時間:
這裏是我的代碼:
func slideToPage(index: Int, completion: (() -> Void)?) {
let currentViewController = pageViewController?.viewControllers![0] as! WebViewViewController
let count = dataSource.controllers.count
let currentPageIndex = dataSource.controllers.indexOf(currentViewController)!
guard index < count else { return }
// Moving forward
if index > currentPageIndex {
if let vc: WebViewViewController = dataSource.controllers[index] {
self.pageViewController!.setViewControllers([vc], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: {
void in
vc.loadContent()
})
}
}
// Moving backward
else if index < currentPageIndex {
if let vc: WebViewViewController = dataSource.controllers[index] {
self.pageViewController!.setViewControllers([vc], direction: UIPageViewControllerNavigationDirection.Reverse, animated: true, completion: {
void in
vc.loadContent()
})
}
}
}
編輯:
的問題是在日電子動畫。如果在setViewControllers()函數內設置了一個動畫:false,則該頁面瀏覽會轉到正確的視圖。 如果爲true,則在動畫結束時,綜合瀏覽量將轉到上一頁。
什麼操作系統在這些設備上運行?都一樣嗎? –
是啊,都一樣(9.3)。即使在模擬器(不僅是物理設備) –