ios - Why is viewDidLoad() getting called twice? -


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

viewdidload called twice

anyway, 1 important advice you: don't put code broke app/data in viewdidload. viewdidload not assumed called once in viewcontroller's lifecycle


Comments