在 Swift 中使用 UIPageViewController 和 "as" downcast
Using UIPageViewController in Swift with "as" downcast
我正在使用 PageViewController,然后我声明了 PageViewController 的数据源,在实现所需的方法时,我在使用 as downcast 时遇到错误,它说 "correctViewController is not a type."
import UIKit
class HarishPageViewController: UIPageViewController, UIPageViewControllerDataSource {
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
// Do any additional setup after loading the view.
}
let pageTitles = ["HarishIntroduction", "HarishPlaces", "WyomingSeminary", "AppleTree", "KearneyHighSchool", "MosconeCenter"]
let viewControllerArray: NSArray = [HarishIntroduction(), HarishPlaces(), WyomingSeminary(), AppleTree(), KearneyHighSchool(), MosconeCenter()]
var index = 0
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if index == 0 {
return nil
}
else {
index--
let page = pageTitles[index]
let correctViewController: UIViewController = viewControllerArray[index] as! UIViewController
let vc = harishStoryboard.instantiateViewControllerWithIdentifier(page) as correctViewController
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
我尝试了很多不同的方法,但就是无法摆脱 as 旁边的错误。有什么想法吗?
它不是类型或 class。您正在尝试向下转换为变量。
在 as
之后,只需写入控制器的 class
我正在使用 PageViewController,然后我声明了 PageViewController 的数据源,在实现所需的方法时,我在使用 as downcast 时遇到错误,它说 "correctViewController is not a type."
import UIKit
class HarishPageViewController: UIPageViewController, UIPageViewControllerDataSource {
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
// Do any additional setup after loading the view.
}
let pageTitles = ["HarishIntroduction", "HarishPlaces", "WyomingSeminary", "AppleTree", "KearneyHighSchool", "MosconeCenter"]
let viewControllerArray: NSArray = [HarishIntroduction(), HarishPlaces(), WyomingSeminary(), AppleTree(), KearneyHighSchool(), MosconeCenter()]
var index = 0
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if index == 0 {
return nil
}
else {
index--
let page = pageTitles[index]
let correctViewController: UIViewController = viewControllerArray[index] as! UIViewController
let vc = harishStoryboard.instantiateViewControllerWithIdentifier(page) as correctViewController
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
我尝试了很多不同的方法,但就是无法摆脱 as 旁边的错误。有什么想法吗?
它不是类型或 class。您正在尝试向下转换为变量。
在 as
之后,只需写入控制器的 class