ios - How to pass content of UITextField to another UITableViewController linked by UITabbarController -
i new ios development in swift 3 , encountering trouble. in picture below have 2 uitableviewcontrollers textfield in first 1 . 2 tableviews linked tabbarcontroller , recover content of textfield use in secondtableviewcontroller. dont know how it, common tutorials data passing explain button action recover data in changing tableview if possible.
i hope clear in question.
here in first uitableviewcontroller:
class investmenttableviewcontroller: uitableviewcontroller, uitabbarcontrollerdelegate var somevariable: float? override func viewdidload() { super.viewdidload() self.tabbarcontroller?.delegate = self } func tabbarcontroller(_ tabbarcontroller: uitabbarcontroller, shouldselect viewcontroller: uitableviewcontroller) -> bool { let selectedvc:extrachargestableviewcontroller = viewcontroller as! extrachargestableviewcontroller selectedvc.totalinvest = self.somevariable return true }
in other tabview
class extrachargestableviewcontroller: uitableviewcontroller { var totalinvest: float?
let's assume have tabbar based project 2 view controller firstvc , secondvc there. in firstvc have textfield, , want textfiled use in secondvc. can pass textfields in shouldselectviewcontroller
delegate method. here firstvc should like
class firstviewcontroller: uiviewcontroller,uitabbarcontrollerdelegate { @iboutlet weak var txtfldfirst: uitextfield! override func viewdidload() { super.viewdidload() // additional setup after loading view, typically nib. self.tabbarcontroller?.delegate = self; } override func didreceivememorywarning() { super.didreceivememorywarning() // dispose of resources can recreated. } func tabbarcontroller(tabbarcontroller: uitabbarcontroller, shouldselectviewcontroller viewcontroller: uiviewcontroller) -> bool { nslog("view controller descriptionn should select = %@", viewcontroller.description); let selectedvc:secondviewcontroller = viewcontroller as! secondviewcontroller selectedvc.txtfld = self.txtfldfirst return true; }
and secondvc should this
class secondviewcontroller: uiviewcontroller { var txtfld : uitextfield! override func viewdidload() { super.viewdidload() // additional setup after loading view, typically nib. nslog("text fld = %@", txtfld.text); }
output text of textfield present in firstvc.
for uitableviewcontroller, follow same way
import uikit class firsttableviewcontroller: uitableviewcontroller,uitabbarcontrollerdelegate { var txtfldfirst:uitextfield! override func viewdidload() { super.viewdidload() // uncomment following line preserve selection between presentations // self.clearsselectiononviewwillappear = false // uncomment following line display edit button in navigation bar view controller. // self.navigationitem.rightbarbuttonitem = self.editbuttonitem() txtfldfirst = uitextfield(frame: cgrectmake(20, 100, 150, 30)); txtfldfirst.text = "hello world" self.view.addsubview(txtfldfirst); self.tabbarcontroller?.delegate = self; } func tabbarcontroller(tabbarcontroller: uitabbarcontroller, shouldselectviewcontroller viewcontroller: uiviewcontroller) -> bool { nslog("view controller descriptionn should select = %@", viewcontroller.description); let selectedvc:secondtableviewcontroller = viewcontroller as! secondtableviewcontroller selectedvc.txtfld = self.txtfldfirst return true; }
second tablevc
import uikit class secondtableviewcontroller: uitableviewcontroller { var txtfld:uitextfield! override func viewdidload() { super.viewdidload() // uncomment following line preserve selection between presentations // self.clearsselectiononviewwillappear = false // uncomment following line display edit button in navigation bar view controller. // self.navigationitem.rightbarbuttonitem = self.editbuttonitem() nslog("text fld text = %@", self.txtfld.text); }
happy coding ...
Comments
Post a Comment