Showing posts with label uipageviewcontroller. Show all posts
Showing posts with label uipageviewcontroller. Show all posts

Friday, November 18, 2016

UIPageViewController Minimum Setup Template

The minimum setup to get started using the UIPageViewController.
 
class ViewController: UIPageViewController, UIPageViewControllerDataSource {

    var pages: [UIViewController] = [UIViewController]()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        dataSource = self
        
        pages.append(UIStoryboard(name: "Main", bundle: nil)
            .instantiateViewController(withIdentifier: "Page1"))
        pages.append(UIStoryboard(name: "Main", bundle: nil)
            .instantiateViewController(withIdentifier: "Page2"))
        pages.append(UIStoryboard(name: "Main", bundle: nil)
            .instantiateViewController(withIdentifier: "Page3"))
        
        setViewControllers([pages.first!], direction: .forward, animated: true, 
            completion: nil)
    }

    func pageViewController(_ pageViewController: UIPageViewController, 
        viewControllerBefore viewController: UIViewController) -> UIViewController? {
        
        let index = pages.index(of: viewController)!
        
        if index == 0 {
            return nil
        }
        
        return pages[index - 1]
    }
    
    func pageViewController(_ pageViewController: UIPageViewController, 
        viewControllerAfter viewController: UIViewController) -> UIViewController? {
        
        let index = pages.index(of: viewController)!
        
        if index == pages.count - 1 {
            return nil
        }
        
        return pages[index + 1]
    }
    
    func presentationCount(for pageViewController: UIPageViewController) -> Int {
        return pages.count
    }
    
    func presentationIndex(for pageViewController: UIPageViewController) -> Int {
        return 0
    }
}
 


(Xcode 8, Swift 3.0)

SwiftUI Search & Filter with Combine - Part 3 (iOS, Xcode 13, SwiftUI, 2...

In part 3 of the Searchable video series, I show you how to use Combine in #SwiftUI for the search and filter logic connected to the searcha...