我一直試圖弄清楚這幾個小時,我必須誤解UIPageViewController
如何工作。如何更改從屬於UIPageViewController一部分的UIViewController之一的UIPageViewController?
我有5個設置屏幕(加載到UIPageViewController
的單獨視圖控制器),我可以向右滑動+向左滑動以查看。
但是!我希望能夠以編程方式顯示下一個視圖控制器後,他們關閉其中一個視圖控制器的警報。
到目前爲止,我已經發現靠攏唯一的解決辦法,這是這裏的解決方案(https://github.com/jeffaburt/UIPageViewController-Post),允許「下一步」按鈕,但按鈕不是唯一的顯示視圖控制器上,它位於保存UIPageViewController
的根視圖控制器上。
我有UIPageViewController
設置顯示5個不同的視圖控制器,與此代碼。
private(set) lazy var orderedViewControllers: [UIViewController] = {
return [self.newColoredViewController("setup1"),
self.newColoredViewController("setup2"),
self.newColoredViewController("setup3"),
self.newColoredViewController("setup4"),
self.newColoredViewController("setup5")]
}()
然後newColoredViewController
功能做到這一點:
private func newColoredViewController(color: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil) .
instantiateViewControllerWithIdentifier("\(color)")
}
,這裏是我的viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
dataSource = self
if let SetupViewController = orderedViewControllers.first {
setViewControllers([SetupViewController],
direction: .Forward,
animated: true,
completion: nil)
}
}
我必須失去一些基本的瞭解,因爲我已經嘗試了許多不同的方法以編程方式更改頁面,並且沒有任何反應。
我已經試過這樣做,但不起任何作用:
setViewControllers([orderedViewControllers[3]],
direction: .Forward,
animated: true,
completion: nil)
我已經試過這樣做,但不起任何作用:
func scrollToNextViewController() {
if let visibleViewController = viewControllers?.first,
let nextViewController = pageViewController(self,
viewControllerAfterViewController: visibleViewController) {
scrollToViewController(nextViewController)
}
}
請點我正確的方向!我可以整天研究,通常可以找出答案,這要歸功於之前已經回答的stackoverflow問題,但在這裏我很難過。
在此先感謝!
確認!我幾乎不知道如何實施你剛剛解釋的內容。所以,我應該改變函數 'private func newColoredViewController(color:String) - > UIViewController {return}返回UIStoryboard(名稱:「Main」,bundle:nil)。 instantiateViewControllerWithIdentifier(「\(color)」) }' 並嘗試傳遞一個變量?當你說「傳遞給顯示視圖控制器的引用時,我該如何做到這一點? –
你說有更簡單的方法可以做到這一點 - 你可以對這些問題有所瞭解嗎?我都是正確的做法事情,但老實說,我不認爲我可以實現你所解釋的,因爲我不是一個編碼器的水平!! –
是的,不要直接返回實例,但暫時保持它在一些局部變量一會兒,並通過提交視圖控制器 但我的建議是不聲明參數爲呈現視圖控制器的類的對象,但使用協議之間。兩種方式的類耦合工作正常,但不是很好的風格。 –