2016-08-24 117 views
-1

我按照教程here,必須進行一些更改以適合我的項目(code of my variation here,對不起,我把它放在GitHub上,因爲複製和粘貼有點冗長)。有時當我向右滑動到達最後一個VC時,它會自動關閉。其他時候,它正常工作,如果我刷到最後一個VC它停​​留在那裏,直到我再次滑動右鍵關閉它。我在代碼中放置了打印語句來幫助我找到錯誤的位置。這裏是print statements when it workswhen it doesn't work。查看日誌,因爲完全相同的代碼是以相同的順序訪問的,所以我不知道如何解決這個錯誤。當轉換樣式爲PageCurl而不是Scroll時,不會出現此問題。PageViewController滾動錯誤(在滾動條上)

+1

請不要讓我鏈接到其他頁面來查看您的日誌。或者你的相關代碼。 – matt

+0

你能解釋一下「視線閉上」是什麼意思?我什至不知道問題是什麼。你沒有試圖描述這種情況的結構。 – matt

回答

0

首先你需要知道pageViewControllers是如何工作的。
加載第一頁後,開始滾動它的那一刻將嘗試加載下一頁。這只是第一頁。之後,一旦你到達一個頁面,它會預載下一頁(取決於方向)並準備就緒。

在你的情況,當你達到5頁的pageViewController將嘗試預緊下一頁從而導致你的代碼

guard orderedViewControllersCount != nextIndex else { 

     print("last item in coachamrks going to dismiss") 
     self.dismissViewControllerAnimated(true, completion: nil) 

     return orderedViewControllers.first 
    } 

的這一部分,並會盡快到達頁面駁回的viewController 5.
這不是一個錯誤。這是pageViewController的默認行爲。

我認爲你有時會發現它的行爲與你錯誤預期的原因是,當你瀏覽頁面的速度足夠快時,pageViewController停止預加載頁面,出於性能原因。

您可以實現所需的唯一方法是訪問pageViewController內部的scrollView,但它不安全,如果Apple在將來的更新中更改pageViewControllers的體系結構,則可能會破壞您的應用程序。

我建議你在最後一頁放一個按鈕,並用它來關閉pageViewController。