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 trial

iOS

facebook active session Swift/IOS

import UIKit import Foundation

class ViewController: UIViewController, FBLoginViewDelegate { //iboutlet

@IBOutlet var fbLoginView : FBLoginView!



override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    self.fbLoginView.delegate = self
    self.fbLoginView.readPermissions = ["public_profile", "email", "user_friends"]


}

func loginViewShowingLoggedInUser(loginView : FBLoginView!) {
    println("User Logged In")
    println("segue .")


}



func loginViewFetchedUserInfo(loginView : FBLoginView!, user: FBGraphUser){

    println("User Name: \(user.name)")
}



func loginViewShowingLoggedOutUser(loginView : FBLoginView!) {


    println("User Logged Out")
}

func loginView(loginView : FBLoginView!, handleError:NSError) {
    println("Error: \(handleError.localizedDescription)")
}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

I created another view by copying everything from view1:

I get errors when the button transitions into view2.

I assume i cant create two LoginView : FBLoginView!?

How do I get the active FB variables into view2?

import UIKit import Foundation

class view2: UIViewController, FBLoginViewDelegate { //iboutlet

@IBOutlet var fbLoginView : FBLoginView!


@IBOutlet var profilePic: FBProfilePictureView!






override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    self.fbLoginView.delegate = self
    self.fbLoginView.readPermissions = ["public_profile", "email", "user_friends"]


}

func loginViewShowingLoggedInUser(loginView : FBLoginView!) {
    println("User Logged In")
    println("This is where you perform a segue (and or another view).")
}





func loginViewFetchedUserInfo(loginView : FBLoginView!, user: FBGraphUser){

    profilePic.profileID=user.objectID


    println("User Name: \(user.name)")








}



func loginViewShowingLoggedOutUser(loginView : FBLoginView!) {


    println("User Logged Out")
}

func loginView(loginView : FBLoginView!, handleError:NSError) {
    println("Error: \(handleError.localizedDescription)")
}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

1 Answer

use the prepareForSegue method to get variables between view controllers and a delegate method to get return. (http://stackoverflow.com/questions/24040692/prepare-for-segue-in-swift)