2016-07-13 3 views
0

まず最初に、私は迅速かつイオスの開発に非常に新しいと言うことができます。 1週間新品同様!xcode&swift:Facebookのログイン後にta bbarのコントローラに移動

私が達成しようとしているのは、最初にTinderにログインしたときのような、ユーザーがログインした後にアプリケーションをタブバーコントローラに移動することです。 私がこれまで行ってきたことは、Facebookのログインを実装することでした、そして、それは期待どおりに動作します。次に、私はストーリーボードにタブバーコントローラーを追加しました:

1-ビューアーコントローラーをFacebookにログインしてタブバーコントローラーに接続する必要がありますか?

2-私は別のビューコントローラ(Swift project not segue-ing properly after Facebook login) にリダイレクトする「mainStoryboard.instantiateViewControllerWithIdentifier」を使用する必要があることを知っているしかし、私はロードし、これに合格したいのViewControllerの識別子を取得する方法がわかりません関数。

助けてください!これは正しいアプローチですか?私が知っているか実装する必要がある他の事?

お時間をありがとうございます。

答えて

0

ストーリーボードにUITabBarControllerがある場合、初期表示コントローラーにします(これはストーリーボードエディターで設定できます)。 Facebookのログインビューコントローラをそのまま残すことができます。次に取るべきステップは、Storyboard IDをFacebook View Controllerに設定することです。そうすればinstantiateViewControllerWithIdentifierを使用することができます。ストーリーボードに移動して、Facebook View Controllerを選択します。 IDインスペクタに移動し、ストーリーボードIDを文字列値に設定します(何でも構いませんが、簡単に識別できるものを選択してください)。

enter image description here

それが完了すると、起動時に表示される最初のタブになりますクラスに行きます。ここからメソッドoverride func viewDidAppear(animated: Bool)を追加します。その中に、Facebook View Controllerを表示するためのコードを追加します。ここでは例のクラスがある:

class FirstTabViewController: UIViewController { 

    var canLogin:Bool = true 

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

    override func viewDidAppear(animated: Bool) { 

     // Check to see if you need to log in 
     if self.canLogin { 
      // Get a reference to the storyboard 
      let storyboard = UIStoryboard(name: "Main", bundle: nil) 
      // Instantiate the login view controller 
      let loginViewController = storyboard.instantiateViewControllerWithIdentifier("login") as! LoginViewController 
      // Present the view controller 
      self.presentViewController(loginViewController, animated: true, completion: nil) 
      // After presenting the view controller, set a value to prevent it from poping up every time we navigate to this view 
      self.canLogin = false 
     } 

    } 

    //... 

} 

我々はそれを必要としない場合は、Facebookのビューコントローラが表示されませんように、私は余分な財産var canLogin:Bool = trueを追加しました。ユーザーからのログインが必要かどうかを確認するために、この独自の実装を追加する必要があります。

私が指摘したい最後のことは、完了したときにFacebook View Controllerを解除する方法です。これは、Facebook View Controllerを担当するクラスのself.dismissViewControllerAnimated(true, completion: nil)で実現できます。ビューを閉じる準備ができたら、そのメソッドを呼び出します。

関連する問題