A value of type UIViewController does not have a topViewController element after updating Xcode 7

After upgrading to Xcode 7, I get this error: "The type value UIViewControllerdoes not have a topViewController element." Anyone else come across this? Is it topViewControllerno longer part UIViewController?

 override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.leftBarButtonItem = self.editButtonItem()
    let addButton = UIBarButtonItem(barButtonSystemItem: .Search,
        target: self, action: "addButtonPressed:")
    self.navigationItem.rightBarButtonItem = addButton

    if let split = self.splitViewController {
        let controllers = split.viewControllers
        self.detailViewController =
            controllers[controllers.count-1].topViewController as? ### Error heres
        DetailViewController
    }

    model = Model(delegate: self) // create the Model
    model.synchronize() // tell model to sync its data
    self.navigationController?.toolbarHidden = false;
    self.navigationItem.backBarButtonItem = UIBarButtonItem(title:"Home", style:.Plain, target:nil, action:nil)
}
+4
source share
1 answer

You will need to make this explicit so that it knows what you are trying to get topViewControllerfrom UINavigationControllerin Swift 2:

self.detailViewController = (controllers[controllers.count-1] as! UINavigationController).topViewController
+5
source

Source: https://habr.com/ru/post/1609229/


All Articles