I am trying to figure out how to fix this issue in Swift on Xcode 7 (iOS9) and I am also having this error:
Cannot subscript a value of type '[UIViewController]?' with an index of type 'Int'
Any suggestion appreciated. Thanks.
My code:
func indexPositionForCurrentPage(pageViewController: UIPageViewController) -> Int {
let currentViewController = pageViewController.viewControllers[0] as UIViewController
for (index, page) in pages.enumerate() {
if (currentViewController == page) {
return index
}
}
return -1
}
Try:
let currentViewController = pageViewController.viewControllers![0]
It would be safer, though, to write:
if let currentViewController = pageViewController.viewControllers?[0] {
// ... and then do everything else in the if-block
end
Another alternative:
guard let currentViewController = pageViewController.viewControllers?[0] else {
return
}
// ... and then just proceed to use currentViewController here
This has the advantage that it's safe but there's no need to put the remainder of the function inside an if
block.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With