2016-11-30 66 views
0

我有一個非常具體的用例,我想知道是否有人處理過。我想在我的第一次用戶體驗UIPageViewController上添加一個「繼續」按鈕。這篇文章(Swift iOS: how to trigger next page using buttons),觸及如果你希望它在每一頁上,但我不打算廣泛使用。如何在uiviewcontroller/storyboard上使用uibutton在uipageviewcontroller中提前頁面

我有一個UIPageViewController和6個viewcontrollers,我目前可以通過滑動瀏覽。

我試着將按鈕連接到視圖控制器作爲一個segue,但它呈現在PageViewController之外。我想過只是按一下右鍵到左鍵輕掃按鈕,但我無法退出。

任何人都有一個想法如何攻擊把一個按鈕放在其中一個視圖控制器,並讓它進展到UIPageViewController內的下一個視圖控制器?


這被標記爲重複,但在SO上沒有這個問題的重複情況。有一些相似的,但沒有像它。如果有,請鏈接它。當前鏈接的版本是類似問題的obj-c答案,沒有解釋如何將所需函數鏈接到視圖控制器。這個答案我可以很容易地作爲一個全局按鈕來實現,但是一個視圖控制器按鈕不被它覆蓋。

感謝


編輯爲最終代碼的解決方案。

因此,這是一個兩部分的解決方案,迅速3.

在uipageviewcontroller數據源的擴展編碼,翻轉頁面的FUNC建如下。

func goNextPage() { 
    let cur = self.viewControllers![0] 
    let p = self.pageViewController(self, viewControllerAfter: cur) 
    self.setViewControllers([p!], direction .forward, animated: true, completion: nil) 
    } 

在單個視圖控制器的片如下

@IBAction func nextPageButtonWasTapped(_ sender: Any) { 
    var candidate: UIViewController = self 
    while true { 
    if let pageViewController = candidate as? MyUIPageViewController { 
     pageViewController.goNextPage() 
     break 
    } 
    guard let next = parent else { break } 
    candidate = next 
    } 
} 
+0

你的問題實際上是否與'UIPageControl'有關,或者是你的標題有錯? –

+0

對不起,編輯到uipageviewcontroller –

+1

看看[這](http://stackoverflow.com/questions/11938149/turn-page-programmatically-in-uipageviewcontroller-when-using-uipageviewcontroll)回答你的問題。 –

回答

0

走到視圖控制器結構,找到頁面視圖控制器內置。當你找到它,要求它翻開新的一頁:

@IBAction func nextPageButtonWasTapped(_ sender: AnyObject?) { 
    var candidate: UIViewController = self 
    while true { 
     if let pageViewController = candidate as? UIPageViewController { 
      candidate.navigateForward() 
      break 
     } 
     guard let next = parentViewController else { break } 
     candidate = next 
    } 
} 

UIPageViewController擴展實現navigateForward的基礎上,從this answer Objective-C的版本。

+0

感謝您的回覆!我在擴展中構建了用於轉到下一頁的功能,但無法連接它們。我認爲你讓我走在正確的道路上。 當我實現這個,我得到一個錯誤回來說,「值的類型'UIViewcontroller」沒有成員'goNextPage'「因此,它看起來像不是作爲頁面視圖控制器投下候選變量 –

+0

我想出了什麼這個問題在上面,我是以普通的頁面視圖控制器來投射,而不是自定義的視圖控制器,它帶有我已經創建的擴展和功能,現在我已經連接了,只需要獲得擴展功能就可以工作。再次感謝! –

相關問題