ストーリーボードにUITabBarController
がある場合、初期表示コントローラーにします(これはストーリーボードエディターで設定できます)。 Facebookのログインビューコントローラをそのまま残すことができます。次に取るべきステップは、Storyboard IDをFacebook View Controllerに設定することです。そうすればinstantiateViewControllerWithIdentifier
を使用することができます。ストーリーボードに移動して、Facebook View Controllerを選択します。 IDインスペクタに移動し、ストーリーボードIDを文字列値に設定します(何でも構いませんが、簡単に識別できるものを選択してください)。
![enter image description here](https://i.stack.imgur.com/ZY1Jw.png)
それが完了すると、起動時に表示される最初のタブになりますクラスに行きます。ここからメソッド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)
で実現できます。ビューを閉じる準備ができたら、そのメソッドを呼び出します。