ios - SIGABRT signal with DetailViewController -


this question has answer here:

i extremely new @ swift , still figuring out swift/objective-c syntax , libraries. trying recreate simple list of pictures can view on different image view. below code , error message, please guide me in right direction.

import uikit

class masterviewcontroller: uitableviewcontroller {      var detailviewcontroller: detailviewcontroller? = nil     var objects = [anyobject]()       override func awakefromnib() {         super.awakefromnib()         if uidevice.currentdevice().userinterfaceidiom == .pad {             self.clearsselectiononviewwillappear = false             self.preferredcontentsize = cgsize(width: 320.0, height: 600.0)         }     }      override func viewdidload() {         super.viewdidload()          let fm = nsfilemanager.defaultmanager()         let path = nsbundle.mainbundle().resourcepath!          let items = fm.contentsofdirectoryatpath(path, error: nil)          item in items as! [string] {             if item.hasprefix("img_") {                 objects.append(item)             }         }      }      override func didreceivememorywarning() {         super.didreceivememorywarning()         // dispose of resources can recreated.     }      // mark: - segues      override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) {         if segue.identifier == "showdetail" {             if let indexpath = self.tableview.indexpathforselectedrow() {                  let detailviewcontroller = segue.destinationviewcontroller as! detailviewcontroller                 detailviewcontroller.detailitem = objects[indexpath.row] as? string             }         }     }      // mark: - table view      override func numberofsectionsintableview(tableview: uitableview) -> int {         return 1     }      override func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int {         return objects.count     }      override func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell {         let cell = tableview.dequeuereusablecellwithidentifier("cell", forindexpath: indexpath) as! uitableviewcell          let object: (anyobject) = objects[indexpath.row]         cell.textlabel!.text = object as? string         return cell     }  } 

i getting error in block of code specifically:

    override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) {         if segue.identifier == "showdetail" {             if let indexpath = self.tableview.indexpathforselectedrow() {                  let detailviewcontroller = segue.destinationviewcontroller as! detailviewcontroller                 detailviewcontroller.detailitem = objects[indexpath.row] as? string             }         }     } 

the error message in console comes as:

could not cast value of type 'uinavigationcontroller' (0x10a979698) 'project1.detailviewcontroller' (0x1090f27a0).

replace this:

let detailviewcontroller = segue.destinationviewcontroller as! detailviewcontroller 

with this:

let nav = segue.destinationviewcontroller uinavigationcontroller let detailviewcontroller = nav.topviewcontroller as! detailviewcontroller 

solution modified from: destinationviewcontroller segue , uinavigationcontroller swift


Comments

Popular posts from this blog

javascript - Google App Script ContentService downloadAsFile not working -

javascript - Function overwritting -

php - Find a regex to take part of Email -