2017-02-04 11 views
0

私は、ユーザの認証を担当するビューコントローラにセグを持っています。使用がサインインされると、親ビューコントローラに戻る必要があります。 thisガイドの後に、認証ビューコントローラからその出口にセグを作成しました。コードで呼び出そうとすると、何も起こりません。終了するためにセグを実行できません

はここに私のコードです:

import UIKit 

import Firebase 
import FirebaseAuth 
import GoogleSignIn 

class AuthVC: UIViewController, GIDSignInUIDelegate { 

    @IBAction func unwindAuth(sender: UIStoryboardSegue) { 
     print("'unwindAuth' called") 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     GIDSignIn.sharedInstance().uiDelegate = self 

     FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in 
      if FIRAuth.auth()?.currentUser != nil { 

       print(self.shouldPerformSegue(withIdentifier: "unwindSegue", sender: nil)) 

       self.performSegue(withIdentifier: "unwindAuthSegue", sender: nil) 

      } 
     } 
    } 
} 

ボタンで記号をクリックした後、私はself.shouldPerformSegueからコンソールにtrueを得るが、何もない(エラーと何も起こりません)。

私はXcode Version 8.3 beta(8W109m)を使用しています。

私はこの問題に対する解決策を数日間探しています。

免責事項:私はXcodeを初めて使用していますが、私はほぼ10年間プログラミングしています。私は正式なトレーニングはありません。

+2

あなたは非常に密接にそれを読んでいない:」..youは、ビューコントローラにアンワインドアクションの名前を指定しますセグーを巻き戻したい "。あなたは巻き戻しているビューコントローラに配置しました。 – Gruntcakes

+0

答えをありがとう。それを逆にする方法はありますか?私は最初のコントローラからのサインインを聞くことができますが、それが認証ビューコントローラからのものであることを知るために、何らかの種類の状態変数を設定する必要があります。それはベストプラクティスのようには見えません。また、なぜ何もせずにエラーになったのはなぜですか? – Fallenalien22

+0

2番目のビューコントローラーから1番目のビューコントローラーにデータを戻したいような音がしますか?あなたが周りを見回す場合、それを行う方法に関する多くの過去の質問があります。 – Gruntcakes

答えて

3

unwind segueアクションは、離しているビューコントローラではなく、segue backするビューコントローラに配置する必要があります。

あなたが戻ってデータを渡したい場合、あなたは、デリゲートを使用することができます

Passing data back from view controllers Xcode

+0

ありがとうございました。それは今働く。私がしなければならなかったのは、親View Controllerに '@IBAction func'を置くことでした。 segueはそのクラスに属しているので、 'self.performSegue'は子ビューコントローラになければならないので、私はリンクも必要ありません。 – Fallenalien22

関連する問題