ios - Drill-down tableview in Swift -


so want achieve form of tableview shown in sketch.

enter image description here

i have mastertableviewcontroller array of people's names. when user selects person 2, presents detail of person 2's details such name, age, location, , status.

if user views , clicks back button, can choose person , view own details different person 2.

i been having trouble past 2 weeks , cannot figure out. been looking on internet nothing. help. or sample swift xcode project in zipped file too.

you can create 1 class holds person data this:

class people { var name: string? var age : int? var location: string? var status: string?  init(name: string, age: int, location: string, status: string) {      self.name = name     self.age = age     self.location = location     self.status = status    } } 

after can add data way:

func setuppersons(){      let person1 = people(name: "anna", age: 20, location: "12312321", status: "single")     let person2 = people(name: "john", age: 30, location: "12312321", status: "single")     let person3 = people(name: "leo", age: 30, location: "12312321", status: "single")     let preson4 = people(name: "dharmesh", age: 30, location: "12312321", status: "single")     arrayofperson.append(person1)     arrayofperson.append(person2)     arrayofperson.append(person3)     arrayofperson.append(preson4) } 

then can display person name tableview cell way:

override func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell {     let cell : uitableviewcell = tableview.dequeuereusablecellwithidentifier("cell") as! uitableviewcell     let person = arrayofperson[indexpath.row]     cell.textlabel?.text = person.name     return cell } 

you can selected cell index way:

override func tableview(tableview: uitableview, didselectrowatindexpath indexpath: nsindexpath) {      selectedindex = indexpath.row } 

after can pass data segue way:

override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) {      if(segue.identifier == "youridentifierinstoryboard") {          var detailviewcontroller = (segue.destinationviewcontroller as! detailviewcontroller)         let person = arrayofperson[selectedindex]          detailviewcontroller.namep = person.name!         detailviewcontroller.agep = person.age!         detailviewcontroller.locationp = person.location!         detailviewcontroller.statusp = person.status!     } } 

and way can display data of selected person:

    class detailviewcontroller: uiviewcontroller {      @iboutlet weak var name: uilabel!     @iboutlet weak var age: uilabel!     @iboutlet weak var location: uilabel!     @iboutlet weak var status: uilabel!      var namep = ""     var agep = 0     var locationp = ""     var statusp = ""      override func viewdidload() {         super.viewdidload()         println(namep)         name.text = namep         age.text = "\(agep)"         location.text = locationp         status.text = statusp     }  } 

here sample project.


Comments