2016-07-08 4 views
0

ユーザーのログイン時に基本的なユーザー情報を取得するためにFacebookのグラフが表示されます。その後の子ビューコントローラ(基本的にはログイン後のすべて)にまたがって保持されます。異なるViewControllerで使用するFacebookデータを保存する

let userImageView: UIImageView = { 
    let imageView = UIImageView() 

    return imageView 
}() 

let nameLabel: UILabel = { 
    let label = UILabel() 

    return label 
}() 

し、後で:

例えば、私は私のログイン・ビュー・コントローラで、私は、この関連するコードを持っている(いないことで)ログイン画面の後にアプリ全体の設定ボタンとしてプロフィール写真を使用したいです
func fetchProfile() { 
    let parameters = ["fields": "email, first_name, last_name, picture.type(large)"] 
    FBSDKGraphRequest(graphPath: "me", parameters: parameters).startWithCompletionHandler({ (connection, user, requestError) -> Void in 

     if requestError != nil { 
      print(requestError) 
      return 
     } 

     var _ = user["email"] as? String 
     let firstName = user["first_name"] as? String 
     let lastName = user["last_name"] as? String 

     self.nameLabel.text = "\(firstName!) \(lastName!)" 

     var pictureUrl = "" 

     if let picture = user["picture"] as? NSDictionary, data = picture["data"] as? NSDictionary, url = data["url"] as? String { 
      pictureUrl = url 

     } 

     let url = NSURL(string: pictureUrl) 
     NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in 
      if error != nil { 
       print(error) 
       return 
      } 

      let image = UIImage(data: data!) 
      dispatch_async(dispatch_get_main_queue(), {() -> Void in 
       self.userImageView.image = image 
      }) 

     }).resume() 

    }) 
} 

2番目のViewControllerでこれにアクセスするには何が必要ですか?私が理解できるものから、seguesは最初のviewControllerに物理的な属性がある場合にのみ役立ちます。

おかげ

答えて

0

コアデータは、画像と同じ大きさのファイル用に最適化されていないとして、ドキュメントディレクトリになります画像を保存するための最良の方法。あなたは次のようにのgetImage機能とコードを作成する次に、あなたのViewController(複数可)に、空のパブリックイメージvar fbImage:UIImage()を作成

func saveImageDocumentDirectory(){ 
     let fileManager = NSFileManager.defaultManager() 
     let paths = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString).stringByAppendingPathComponent(*** Name of DocDir Image***) 
     let image = // *** Your Facebook Image *** 
     print(paths) 
     let imageData = UIImageJPEGRepresentation(image!, 0.5) 
     fileManager.createFileAtPath(paths as String, contents: imageData, attributes: nil) 
    } 

......ようにドキュメントディレクトリ内の写真を保存したいと思います... ..

func getImage() 
{ 
      let fileManager = NSFileManager.defaultManager() 
      let imagePAth = (self.getDirectoryPath() as NSString).stringByAppendingPathComponent(*** Name of Your DocDir Image ***) 
      if fileManager.fileExistsAtPath(imagePath){ 
       self.fbImage.image = UIImage(contentsOfFile: imagePath) 
      }else{ 
       print("No Image Saved") 
      } 
     } 
関連する問題