私は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:
viewcontrollerにxibまたはstoryboardを使用していますか? – Tj3n
@ Tj3nいいえ私はそれを使わないでください – vanquish