2016-05-22 1 views
1

私はこのタブのコントローラシーンがあるSwiftプロジェクトを持っています。ユーザがログオンしているときに、「ログインシーン」として動作するビューコントローラシーンを追加したいと思います。タブバーのコントローラシーンへのビュー。コードスウィフトのビューを変更する

私はFacebookのログインを実装しているので、ログインが完了したときに呼び出されるメソッドがあります。 私はこの行っている:

func loginDone(){ 
    let vc = self.storyboard?.instantiateViewControllerWithIdentifier("dashboardScreen") as! UITabBarController 
    self.presentViewController(vc, animated: true, completion: nil) 
} 

をしかし、そのコードは私にこのエラーをもたらします:

Attempt to present <UITabBarController: 0x7f87a37e8550> on <Project.LoginViewController: 0x7f87a352fca0> whose view is not in the window hierarchy! 

私は何をすべき?

ありがとうございます!

+2

どこからこのメソッドを呼び出していますか? init、viewDidLoadメソッドなどから呼び出すべきではありません。ビューの前に呼び出されるメソッドも表示されます。 – Avt

+0

viewdidloadから呼び出していましたが、エラーが表示されます。私はどこを呼びますか? –

+2

例えばviewDidAppearから呼び出します。 – Avt

答えて

0

viewDidAppear()で呼び出すと、ログインビューがアプリのビュー階層の一部であることが確認できます。

プレゼンテーションビューコントローラがアプリケーションのビュー階層にあることを確認する必要があります。あなたはView ControllerのあなたはあなたがINITからloginDoneを呼び出すべきではありませんView Controller Programming Guide

+0

投票はできますがコメントは追加できませんか? –

0

で見ることができる、のviewDidLoadメソッドなどでの作業の詳細情報が必要な場合UIViewController Class Reference

の「イベントを表示するには、対応」セクションを参照してください。 beforeビューが表示されます。 viewDidAppearから呼び出します。

関連する問題