so this is really frustrating. I'm trying to use a singleton to pass a string variable but it's not passing over on the 2nd UIViewController.
Singleton.swift:
class CardName {
var cardName : String = ""
class var sharedInstance : CardName {
struct Static {
static let instance : CardName = CardName()
}
return Static.instance
}
var returnedCardName : String {
get{
return self.cardName
}
set {
self.cardName = newValue
}
}}
View 1:
CardName.sharedInstance.returnedCardName = "Single pass test"
print("Shared instance name set: \(CardName.sharedInstance.returnedCardName)")
print() is successful at showing the string set correctly.
View 2:
let card_name_shared = CardName.sharedInstance
override func viewDidLoad() {
super.viewDidLoad()
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
card_Name = card_name_shared.returnedCardName
print("Passed Card Name: \(self.card_name_shared.returnedCardName)")
}
View 2 print() results:
Passed Card Name:
I have this setup with some other views the exact same way but i don't know why it's not working.
I use
self.performSegueWithIdentifier("segue", sender: nil)
to move to the next view. I don't know if that has anything to do with it.
I don't understand how override func prepareForSegue works or if it can help.