Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialJonas Kristensen
2,738 PointsWhats wrong with my code?
Im trying to use Segue, to tell me the capital on a Second View Controller. There are no errors in Xcode, but the label on Second Viewcontroller doesn't show me anything? You can see the codes below
Jonas Kristensen
2,738 Pointsimport Foundation
import UIKit
class SecondVC: UIViewController {
@IBOutlet var labelText: UILabel!
var segueText: String = ""
override func viewDidLoad() {
super.viewDidLoad()
labelText.text = segueText
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
1 Answer
Jhoan Arango
14,575 PointsHey Jonas: Try this
import UIKit
class ViewController: UIViewController {
var lande = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func spainKnap(sender: UIButton) {
lande = lande + 1
performSegueWithIdentifier("sideSkift", sender: sender)
}
@IBAction func denmarkKnap(sender: UIButton) {
lande = lande + 2
performSegueWithIdentifier("sideSkift", sender: sender)
}
@IBAction func italyKnap(sender: UIButton) {
lande = lande + 3
performSegueWithIdentifier("sideSkift", sender: sender)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "sideSkift" {
let sideEtKontrol = segue.destinationViewController as! SecondVC
if lande == 1 {
sideEtKontrol.segueText = "Madrid"
}
else if lande == 2 {
sideEtKontrol.segueText = "København"
}
else if lande == 3 {
sideEtKontrol.segueText = "Rom"
}
else {
sideEtKontrol.segueText = "Du har ikke trykket"
}
}
}
}
Second VC
import Foundation
import UIKit
class SecondVC: UIViewController {
@IBOutlet var labelText: UILabel!
var segueText = ""
override func viewDidLoad() {
super.viewDidLoad()
labelText.text = segueText
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Jonas Kristensen
2,738 PointsIt works! Thanks a lot, i really wondered how you can pass difference data with difference buttons! But now i got a new problem. How do i get my variable called "lande" to be 0 everytime i go back to the First View? Now it puts the value of the button together with the last button i pressed. Can i make somekind of Default in the segue function?
Jonas Kristensen
2,738 PointsJonas Kristensen
2,738 Points