我有一個IOS應用程序,讓用戶刷過幾周的筆記。每週都是一個UIViewController - 視圖控制器之間的滑動和切換由UIPageViewController處理。許多視圖控制器 - 性能問題
在啓動時,所有的視圖控制器都會初始化其數據。
當用戶刷我GRAP這樣的視圖控制器:
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if let currentPageViewController = viewController as? SinglePageViewController {
let currentIndex = currentPageViewController.index
return self.weeks[currentIndex - 1]
}
return nil
}
該應用程序工作無瑕疵,直到使用有許多周,由此許多視圖控制器。啓動時間開始成爲一個問題 - 隨着這幾周的進行,這種情況只會變得更糟。
我玩過每個視圖控制器初始化當用戶滑動。就像這樣:
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if let currentPageViewController = viewController as? SinglePageViewController {
let currentIndex = currentPageViewController.index
let newVC = SinglePageViewController()
newVC.index = currentIndex - 1
return newVC
}
return nil
}
這種方法適用和啓動時間是偉大的 - 但是,刷卡現在已經變得遲緩和不順暢的。
任何人都可以建議如何解決這個問題?
你可以嘗試設置它,一旦你的應用程序達到某個點(視圖控制器的數量),它開始回收舊的視圖控制器顯示未來幾周的筆記。 –
而不是在你滑動時初始化視圖控制器,你應該在每個方向初始化一對,而不是僅僅是下一個。 – pbush25
@ twist295,你有這樣的例子嗎? – Rasmus