for reason data being save twice model. why viewdidload
running twice? controller purpose scoreboard. populated data using core data. ive tried deleting tablecontroller , adding new one.
import uikit class scoreboardtableviewcontroller: uitableviewcontroller { var model = scoreboardmodel.sharedinstance var numbers = [9,12,9]// [int]() var timer = "k" var date = "thedatetoday" override func viewdidload() { super.viewdidload() var count = numbers.count var x = string(count) if(timer != "k"){ model.savescoreboard(date, numsmemorized: x,time: timer) println("saved!") } model.getscoreboards() } override func didreceivememorywarning() { super.didreceivememorywarning() } // mark: - table view data source override func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int { return model.scoreboard.count } override func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell { let cell = tableview.dequeuereusablecellwithidentifier("cellll", forindexpath: indexpath) uitableviewcell let score = model.getscore(indexpath) cell.textlabel!.text = ("\(score.numsmemorized) | \(score.time)") return cell } }
the view segues scoreboardtableviewcontroller is:
import uikit class practicerecitecontroller: uiviewcontroller, uitextfielddelegate { var thetime = "" @iboutlet weak var howmanycorrect: uilabel! var numbers = [9,12,9] var x = 0 @iboutlet weak var textfield: uitextfield! var howmanycorrectnum = 0 override func viewdidload() { super.viewdidload() var outof = numbers.count howmanycorrect.text = "\(howmanycorrectnum) / \(outof)" textfield.delegate = self; textfield.addtarget(self, action:"edited", forcontrolevents:uicontrolevents.editingchanged) } override func didreceivememorywarning() { super.didreceivememorywarning() // dispose of resources can recreated. } func edited() { //[todo] if on last number in array & correct. endgame/collectscore var userinput = textfield.text.toint() if numbers[x] == userinput{ if x+1 == numbers.count{ performseguewithidentifier("scoreboardidentifier", sender: self) } //println("correct") x++ howmanycorrect.text = string(x) + "/" + string(numbers.count) //i set here timer if user enter correct input remove text after time var timer = nstimer.scheduledtimerwithtimeinterval(0.8, target: self, selector: selector("resettext"), userinfo: nil, repeats: false) }else if userinput?.isdouble() == numbers[x].isdouble(){ println("incorrect") } else{ println("huh?") } } //this method call after time use if user enter correct input func resettext(){ textfield.text = "" } override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject!) { var destviewcontroller = segue.destinationviewcontroller scoreboardtableviewcontroller destviewcontroller.numbers = numbers destviewcontroller.timer = thetime } }
the question being answered many times before : viewdidload getting called twice on rootviewcontroller @ launch
anyway, 1 important advice you: don't put code broke app/data in viewdidload
. viewdidload
not assumed called once in viewcontroller's lifecycle
Comments
Post a Comment