swift - 'NSString' is not a subtype of 'UILabel' -
swift - 'NSString' is not a subtype of 'UILabel' -
i developing simple tableview custom cell , in when user click on row it's navigate next detailviewcontroller , detailviewcontroller displays info , code is:
iteams.swift
class iteam { var name = "name" var time = "time" var imagename = "blank" init(name : string, time : string, imagename : string){ self.name = name self.time = time self.imagename = imagename } } detailviewcontroller.swift
import uikit class detailviewcontroller: uiviewcontroller { @iboutlet weak var iteamimage: uiimageview! @iboutlet weak var iteamname: uilabel! @iboutlet weak var iteampreptime: uilabel! var namestr : string = string() var preptime : int = int() var iteamimagename : string = string() override func viewdidload() { super.viewdidload() self.iteamname.text = namestr self.iteampreptime.text = string(preptime) self.iteamimage.image = uiimage(named: iteamimagename) } } viewcontroller.swift
class viewcontroller: uiviewcontroller, uitableviewdatasource, uitableviewdelegate { @iboutlet weak var mytableview: uitableview! var arrayofiteams : [iteam] = [iteam]() override func viewdidload() { super.viewdidload() self.setofiteams() } override func didreceivememorywarning() { super.didreceivememorywarning() } func setofiteams(){ var iteam1 = iteam(name: "egg benedict", time: "00:10", imagename: "egg_benedict.jpg") var iteam2 = iteam(name: "mushroom risotto", time: "00:20", imagename: "mushroom_risotto.jpg") var iteam3 = iteam(name: "full breakfast", time: "00:30", imagename: "full_breakfast.jpg") var iteam4 = iteam(name: "hamburger", time: "00:20", imagename: "hamburger.jpg") var iteam5 = iteam(name: "ham , egg sandwich", time: "00:10", imagename: "ham_and_egg_sandwich.jpg") var iteam6 = iteam(name: "creme brelee", time: "00:20", imagename: "creme_brelee.jpg") var iteam7 = iteam(name: "white chocolate donut", time: "00:30", imagename: "white_chocolate_donut.jpg") var iteam8 = iteam(name: "starbucks coffee", time: "00:20", imagename: "starbucks_coffee.jpg") var iteam9 = iteam(name: "vegetable curry", time: "00:10", imagename: "vegetable_curry.jpg") var iteam10 = iteam(name: "instant noodle egg", time: "00:20", imagename: "instant_noodle_with_egg.jpg") var iteam11 = iteam(name: "noodle bbq pork", time: "00:10", imagename: "noodle_with_bbq_pork.jpg") var iteam12 = iteam(name: "japanese noodle pork", time: "00:10", imagename: "japanese_noodle_with_pork.jpg") var iteam13 = iteam(name: "green tea", time: "00:20", imagename: "green_tea.jpg") var iteam14 = iteam(name: "thai shrimp cake", time: "00:10", imagename: "thai_shrimp_cake.jpg") var iteam15 = iteam(name: "angry birds cake", time: "00:30", imagename: "angry_birds_cake.jpg") var iteam16 = iteam(name: "ham , cheese panini", time: "00:10", imagename: "ham_and_cheese_panini.jpg") arrayofiteams.append(iteam1) arrayofiteams.append(iteam2) arrayofiteams.append(iteam3) arrayofiteams.append(iteam4) arrayofiteams.append(iteam5) arrayofiteams.append(iteam6) arrayofiteams.append(iteam7) arrayofiteams.append(iteam8) arrayofiteams.append(iteam9) arrayofiteams.append(iteam10) arrayofiteams.append(iteam11) arrayofiteams.append(iteam12) arrayofiteams.append(iteam13) arrayofiteams.append(iteam14) arrayofiteams.append(iteam15) arrayofiteams.append(iteam16) } func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int{ homecoming arrayofiteams.count } func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell{ allow cell : customcell = tableview.dequeuereusablecellwithidentifier("cell") customcell allow nutrient = arrayofiteams[indexpath.row] cell.setcell(food.name, preptimetext: food.time, imagename: (food.imagename)) homecoming cell } func tableview(tableview: uitableview, didselectrowatindexpath indexpath: nsindexpath){ allow iteam = arrayofiteams[indexpath.row] var detailviewcontroller : detailviewcontroller = self.storyboard?.instantiateviewcontrollerwithidentifier("detailviewcontroller") detailviewcontroller detailviewcontroller.namestr = iteam.name detailviewcontroller.iteampreptime = iteam.time // here got error detailviewcontroller.iteamimagename = iteam.imagename self.presentviewcontroller(detailviewcontroller, animated: true, completion: nil) } } other namestr , iteamimagename working fine.
any solution this?
your variable called 'preptime' assign straight uilabel itempreptime not yet available (the view not loaded yet). have assign value variable , assign uilabel.text in viewdidload (as already).
so:
detailviewcontroller.iteampreptime = iteam.time // here got error should be:
detailviewcontroller.preptime = iteam.time additional note: seek have consistency in variable names. why did include iteam prefix in variable iteamimagename? causes confusion, because uilabel outlets have prefix. using imagename variable better.
swift
Comments
Post a Comment