인증 용 파이어베이스를 사용합니다. 사용자가 로그인하면 탭 컨트롤러로 홈 화면으로 이동하고 싶습니다.IOS 스위프트 - 스토리 보드없이 홈 화면으로 이동
앱 위임 기능
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]
}
}
는 친절하게 내가 뭘 잘못 알려 주시기 바랍니다.
viewcontroller에는 xib 또는 스토리 보드를 사용합니까? – Tj3n
@ Tj3n 아니오 사용하지 마십시오 – vanquish