UIView 内にContainerViewを作成しStoryboardのUIViewControllerを入れたい
Xcode 7.3、Swift2の環境で、
[iOS swift] ContainerViewをプログラムで作りたい
こちらのページを参考にして、
UIViewをコードでContainerViewにして、
StoryBoardのUIViewを入れようとしたのですが、
下記コード内の「 <=ココ」の部分で、
Could not cast value of type 'Test.StartViewController' (0x1000db240) to 'Test.TestViewController' (0x1000db088).
というエラーが出ます。
いろいろ調べてみたのですが、ContainerViewをコードで作成する情報は、
日本語ではあまり見当たらず、原因がわかりませんでした。
どこが問題なのか、ご教示いただけたらと思います。
どうか、よろしくお願いいたします。
import UIKit
class StartViewController: UIViewController {
@IBOutlet weak var swipeView: UIView!
var printViewController:TestViewController?
override func viewDidLoad() {
super.viewDidLoad()
title = "Hello Container"
printViewController = createHorizontalViewController("Top")
displayContentController(printViewController!, container: swipeView)
}
func createHorizontalViewController(containerTitle:String)->TestViewController{
let sb:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let hController:TestViewController = sb.instantiateInitialViewController() as! TestViewController // <=ココ
// hController.containerTitle = containerTitle
return hController
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func displayContentController(content:UIViewController, container:UIView){
addChildViewController(content)
content.view.frame = container.bounds
container.addSubview(content.view)
content.didMoveToParentViewController(self)
}
func hideContentController(content:UIViewController){
content.willMoveToParentViewController(self)
content.view.removeFromSuperview()
content.removeFromParentViewController()
}
}