IOS Swift - 导航到没有情节提要的主屏幕
Posted
技术标签:
【中文标题】IOS Swift - 导航到没有情节提要的主屏幕【英文标题】:IOS Swift- Navigate to Home screen without Storyboard 【发布时间】:2016-07-26 04:12:15 【问题描述】:我使用 firebase 进行身份验证。用户登录后,我想使用 Tab 控制器移动到主屏幕。
应用代理功能
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 语句 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]
请让我知道我做错了什么。
【问题讨论】:
你使用 xib 还是 storyboard 作为 viewcontroller? @Tj3n 不,我不使用它 【参考方案1】:我认为你错误地实例化了 VC,你应该使用类似 CustomTabBar(nibName: nil, bundle:nil)
的东西并将你的子视图添加到它的 loadView:
【讨论】:
那个 dd 不起作用。但是我能够通过将以下代码添加到 App Delegate 中的 navToHome() 和 navToSignin() 来修复它。还是谢谢你。 window = UIWindow(frame: UIScreen.mainScreen().bounds) window?.makeKeyAndVisible() 如果它已经工作了,你应该做出自己的答案并将其标记为已解决:D 我一定会这样做的。【参考方案2】:将以下代码添加到 App Delegate 中的 navToHome() 和 navToSignin() 修复了该问题。
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.makeKeyAndVisible()
【讨论】:
以上是关于IOS Swift - 导航到没有情节提要的主屏幕的主要内容,如果未能解决你的问题,请参考以下文章