2017-02-13 6 views
-1

Контроллер просмотра страницы не отображается после добавления делегата и источника данных. как реализовать pageViewController Datasource и делегироватьОтсутствует отображение страницы даже после реализации методов делегирования

import UIKit 

DataSource

class PageViewController: UIPageViewController ,UIPageViewControllerDataSource,UIPageViewControllerDelegate 
{ 
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { 
     let vc = storyboard?.instantiateViewController(withIdentifier: "vc") as! ViewController 

     return vc 

    } 
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { 
     let vc = storyboard?.instantiateViewController(withIdentifier: "vc") as! ViewController 

     return vc 
    } 
    func presentationCount(for pageViewController: UIPageViewController) -> Int { 
     return 3 
    } 
    override func index(ofAccessibilityElement element: Any) -> Int { 
     return 0 
    } 

установки делегата и источник данных в ViewDidLoad

override func viewDidLoad() { 
     super.viewDidLoad() 
     dataSource=self 
     delegate = self 
     let vc = storyboard?.instantiateViewController(withIdentifier: "vc") as! ViewController 
     self.setViewControllers([vc], direction: .forward, animated: true, completion: nil) 

    } 


    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

ответ

1

Замена

override func index(ofAccessibilityElement element: Any) -> Int { 
     return 0 
    } 

с

func presentationIndex(for pageViewController: UIPageViewController) -> Int { 
     return 0 
    } 

сделал работу.

я звоню неправильный метод

0
class PageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // set datasource 
     self.dataSource = self 
     // set delegate 
     self.delegate = self 
     // set your current controller 
     setViewControllers([<#YourViewController#>], direction:UIPageViewControllerNavigationDirection.forward, animated: false, completion: nil) 
    } 
} 

DataSource

func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { 
     //return your before Controller here 
     return <#Your Controller Which place before#> 
    } 

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { 

     //return your after Controller here 
     return <#Your Controller Which place after#> 

    } 

для страницы контроллера реализации делегата в качестве последующего

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController { 
    // The number of items reflected in the page indicator. 
    return 5; 
} 

- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController { 
    // The selected item reflected in the page indicator. 
    return 0; 
} 
+0

все-таки я не могу видеть, контролировать страницу – CazzyTheCoder

+0

, что вы не можете видеть? страничный контроллер/pageViewController –

+0

страничный контроллер – CazzyTheCoder

Смежные вопросы