Zhandos.Nurakhmetov
Zhandos.Nurakhmetov

Reputation: 169

swift: How to take access of one variable in another view controller?

I have ViewController.swift and inside of this view controller i have

 let array = NSUserDefaults.standardUserDefaults().objectForKey("\(login)") as! NSArray

let name = array[2]

I want to take 3 element of array and use it in ProfileViewController.swift

What i should do?

Upvotes: 0

Views: 235

Answers (2)

Mandeep Kumar
Mandeep Kumar

Reputation: 776

class Eternal {

class func setObject(value: AnyObject!, forKey defaultName: String!) {
    let defaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()
    defaults.setObject(value, forKey:defaultName)
    defaults.synchronize()
}

class func objectForKey(defaultName: String!) -> AnyObject! {
    let defaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()

    return defaults.objectForKey(defaultName)
}

}

Usage

Eternal.setObject("Disconnect me. I’d rather be nothing", forKey:"Bishop") Eternal.objectForKey("Bishop")

Upvotes: 0

Abhishek729
Abhishek729

Reputation: 327

Use prepareForSegue method-

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == "SegueToProfileView" {
        //Replace "SegueToProfileView" with your segue identifier
        let x = segue.destinationViewController as! ProfileViewController
        x.arrayReceived = array

    }  
}

Inside ProfileViewController

var arrayReceived: [String]!

Whenever there is the segue is performed, arrayReceived will contain your array

let viewController = self.storyboard.instantiateViewControllerWithIdentifier("profileView") as ProdileViewController
viewController.arrayReceived = array

Hope this helps

Upvotes: 2

Related Questions