background Images on pageViewController overlap in reverse
ios, swift, uipageviewcontroller
Solution
The answer to this problem was so simple, just set `clipsToBounds` on the image to `true`
Problem
I have a `pageViewController` that shows a background image per the index. It works fine swiping left to right (forward), but when you swipe in reverse the background images overlap each other. Before I implemented the background image, the UI on each VC worked fine forward and reverse, so I know it's the background image. Also if I change to `page curl` instead of `scroll` in my `storyboard` it works fine in reverse, just doesn't work for `scroll`. This apparently is a known bug (Removing a view controller from UIPageViewController) however I need a solution in Swift. pageviewController: ``` func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { guard let currentPageViewController = viewController as? SinglePageViewController, let currentIndex = indexOfForecast(currentPageViewController.forecast!) as? Int where currentIndex != 0 else { return nil } //fixed bug where index was -0 only on scroll return viewControllerAtIndex(currentIndex - 1) } func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { guard let lastForecast = forecasts?.last, let currentPageViewController = viewController as? SinglePageViewController, currentForecast = currentPageViewController.forecast, let currentIndex = indexOfForecast(currentForecast) as? Int where currentIndex != forecasts?.indexOf(lastForecast) else {return nil} return viewControllerAtIndex(currentIndex + 1) } func viewControllerAtIndex(index: Int) -> UIViewController? { if let forecast = forecasts?[index] { let time = forecastTimes[index] let imageURL = conditionsIcons[index] let backgroundImageName = backgroundImageNames.names[index] let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewControllerWithIdentifier("SinglePageViewController") as! SinglePageViewController vc.forecast = forecast vc.time = time vc.imageURL = imageURL vc.backgroundImageName = backgroundImageName return vc } return nil } func showVC() { if let firstVC = viewControllerAtIndex(0) { busyAlertController.dismiss() let viewControllers = [firstVC] self.setViewControllers(viewControllers, direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil) } } ``` singlePageViewController: ``` override func viewDidLoad() { super.viewDidLoad() backgroundImage = UIImageView(image: UIImage(named: backgroundImageName!)) backgroundImage.contentMode = UIViewContentMode.ScaleAspectFill self.view.insertSubview(backgroundImage, atIndex: 0) } ```