2016-07-26 5 views
0

私はfirebaseを認証に使用します。ユーザーがログインすると、タブコントローラーでホーム画面に移動します。IOS Swift-ストーリーボードのないホーム画面に移動

アプリの委任機能

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
{ 
    window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    window?.makeKeyAndVisible() 
    navToSignin() 
    return true 
} 
func navToHome() 
{ 
    print("navToHome") 
    let customTab = CustomTabBar() 
    window?.rootViewController = customTab 
} 
func navToSignin() 
{ 
    let firstPage = SigninNewVC() 
    window?.rootViewController = firstPage 
} 

SigninNewVC

override func viewWillAppear(animated: Bool) 
{ 
    super.viewWillAppear(animated) 

    if FIRAuth.auth()?.currentUser?.uid != nil 
    { 
     if let appDel = UIApplication.sharedApplication().delegate as? AppDelegate 
     { 
      print("viewWillAppear") 

      appDel.navToHome() 
     //This func gets called but still does not navigate to Home VC 
     } 
    } 
} 

private func fbSignin(token: String) 
{ 
    FIRAuth.auth()?.signInWithCustomToken(token) { (user, error) in 

     if error == nil 
     { 
      if user != nil 
      { 
       if let appDel = UIApplication.sharedApplication().delegate as? AppDelegate 
       { 
        JulehHUD.hideProgressHUD(self.view!) 
        appDel.jumpToHome() 
        //This part works fine when i login it navigates to Home Screen 
       } 
      } 
     } 
     else 
     { 
      print("Error:\n\(error)\n") 
     } 
    } 
} 

私が最初にログインすると、それが正常に動作しますが、私は、ホーム画面に移動することができています。しかし、もし私がホーム画面にナビゲートすることができないアプリケーションを再起動します。 print Statements print( "viewWillAppear")& print( "navToHome")は実行されますが、SigninNewVCにとどまります。私が間違っていることを確認していない。以下は私のタブバークラス

クラスCustomTabBarです:UITabBarController {

override func viewDidLoad() 
{ 
    super.viewDidLoad() 

    let homeController = HomeScreenVC() 
    let newHomeTab = UINavigationController(rootViewController: homeController) 
    newHomeTab.title = "Home" 

    viewControllers = [newHomeTab] 

} 
} 

は親切に私は私が間違っているのか知ってみましょう。アプリの委任で私は& navToSignin()navToHome(へのコードの下に追加loadView:

+0

viewcontrollerにxibまたはstoryboardを使用していますか? – Tj3n

+0

@ Tj3nいいえ私はそれを使わないでください – vanquish

答えて

0

は)問題を修正しました。

window = UIWindow(frame: UIScreen.mainScreen().bounds)  
window?.makeKeyAndVisible() 
+0

それは動作しません。しかし、私はnavToHome()&navToSignin()の下にApp Delegateのコードを追加して修正できました。とにかくありがとうございます。 window = UIWindow(フレーム:UIScreen.mainScreen()。bounds) ウィンドウ?.makeKeyAndVisible() – vanquish

+0

すでに動作している場合は、自分の答えを作成し、解決済みとマークする必要があります:D – Tj3n

+0

私はそれをします。 – vanquish

0

だあなたはCustomTabBar(nibName: nil, bundle:nil)ようなものを使用する必要があり、あなたが誤ってVCをinsantiatedだと思うし、その中にあなたのサブビューを追加

関連する問題