I am trying to pass data from a tableview
to a previous screen, which is my Sign Up screen. Specifically what I am sending is the name of a school.
What is happening is that when I return to the previous screen through the segue, the label I am changing (schoolTextLabel
) is showing "None Selected", when I want it to display the school name. Through some error checking, I have found that when I have it println(theSchoolName)
, it is correctly choosing the name I want displayed, It is just not passing the value to the other screen.
Please help!
I have searched endlessly on the internet for the answer and cannot for the life of me find the answer.
Thank you!
TableViewController
var namesArray = [String]()
var locationsArray = [String]()
var theSchoolName = "None Selected"
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "selectedSchool" {
var completeSignUpVC = segue.destinationViewController as! SignUpViewController
completeSignUpVC.school = self.theSchoolName
}
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.theSchoolName = self.namesArray[indexPath.row]
self.performSegueWithIdentifier("selectedSchool", sender: self.namesArray[indexPath.row])
println(theSchoolName)
}
SignUpViewController
class SignUpViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var schoolTextLabel: UILabel!
var school = "No School Selected"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.schoolTextLabel.text = self.school
usernameSignupText.delegate = self
passwordSignupText.delegate = self
}
}
I found the answer. I needed to find the selected row index, and then call that number in the namesArray. I'm not exactly sure why my previous code didn't work, but this now works.