【问题标题】:Passing Facebook user information between views. iOS Swift Xcode 6 [duplicate]在视图之间传递 Facebook 用户信息。 iOS Swift Xcode 6 [重复]
【发布时间】:2014-08-29 06:01:14
【问题描述】:

我是 iOS 应用程序开发的新手,我很难在视图之间传递 facebook 用户信息。我的应用有 2 个视图。我能够使用this tutorial 实现 facebook 登录,因为您可能知道他们仍然没有为 swift 提供官方支持。

这是我的视图控制器:

//  ViewController.swift


import UIKit

class ViewController: UIViewController, FBLoginViewDelegate{

    @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"]
    }

    // FACEBOOK DELEGATE METHODS
    func loginViewShowingLoggedInUser(loginView : FBLoginView!) {
        println("User Logged In")
        println("This is where you perform a segue.")
        self.performSegueWithIdentifier("gotoMenu", sender: self)

    }

    func loginViewFetchedUserInfo(loginView : FBLoginView!, user: FBGraphUser){
        println(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.
    }


}

这是第二个视图控制器:

//  SecondViewController.swift

import UIKit

class SecondViewController: UIViewController {

    @IBOutlet weak var greeting: UILabel!


    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.
    }


}

我需要在第二个视图中显示用户名,并尽可能显示他的个人资料照片。我该怎么做?

非常感谢 问候 尼克

【问题讨论】:

  • 有多种方法可以实现这一点。请参阅以下线程,其中包含解决问题的不同方法。全部在 ObjectiveC 中,但它们中的大多数也可以在 Swift 中工作。 stackoverflow.com/questions/5210535/…

标签: ios facebook swift segue


【解决方案1】:

在您的 LoginViewController 中只需覆盖 prepareForSegue: 就像这样...

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"gotoMenu"]) {
         SecondViewController *vc = segue.destinationViewController;
         vc.username = self.username; // This is where you pass the data!!
    }
}

我知道这是在 Objective-C 上,但在 Swift 中所有方法名称都完全相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    相关资源
    最近更新 更多