swift - Segue w/ Tab View Controller Keeps Passing Value -
i working on ios application built around tab view controller. have created "contacts" tab, user can find , select contact list. when user selects contact, takes contact's name , passes different tab. function being done so:
func passname(name: string) { let navtab = self.tabbarcontroller!.viewcontrollers![2] as! uinavigationcontroller let hometab = navtab.viewcontrollers[0] as! maincontroller hometab.passedname = name tabbarcontroller?.selectedindex = 2 } everything works should far (name loaded text field). issue value seems keep coming every time change tabs , go home tab. example, if select "john" contacts, take me home tab , put john's name in textfield. let's delete last 2 letters of name, "jo". if load different tab , come back, name field has been reset "john". it's if value gets re-passed every time open home tab. also, every time load home tab after passing name, console prints: "name passed: john", shows being processed every single time tab appears. here code processing name:
var passedname: string! override func viewwillappear(animated: bool) { super.viewwillappear(animated) //checks if name passed controller if let validname = passedname { print("name passed: \(validname)") nametextfield.text = validname } } am passing data incorrectly? thinking might because have above code being called in viewwillappear method, doesn't make sense, data being passed 1 time contacts tab. thanks!
the problem "passedname" variable doesn't changed value every time edit in uitextfield. keep in mind every time change tabs, uiviewcontroller call viewwillappear , viewdidappear. uitextfield show passedname value once select other tab , return.
i suggest every time edit textfield should update passedname value.
sorry bad english.
Comments
Post a Comment