从AppDelegate启动ViewController,从底部缺少tabbar

时间:2016-08-26 09:46:30

标签: ios viewcontroller

我正在开发我的第一个应用程序,我正在尝试管理我的应用程序中的会话,我正在尝试检查用户是否已登录。如果用户最近登录,那么我想跳过登录页面,并将他移到下一页。 我正在做什么,但是我无法继续前进

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
       let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let viewControllerB = mainStoryboard.instantiateViewControllerWithIdentifier("account") as! AccountDetails
    let navController = UINavigationController(rootViewController: viewControllerB)
    let appDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
    appDelegate.window?.rootViewController = viewControllerB
    let vc = self.window?.rootViewController

    UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(navController, animated: true, completion: nil)
    return true
}

我能够到达所需的视图,但该视图上的Tabbar是错误的。我想要恢复它。

第二个屏幕(我希望显示的帐户)

 class AccountDetails: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
            // Initialize Tab Bar Item
            tabBarItem = UITabBarItem(title: "Account Details", image: UIImage(named: "Account.png"), tag: 1)

        }

}

3 个答案:

答案 0 :(得分:0)

替换第self.window?.rootViewController?.presentViewController(navController, animated: true, completion: nil)

self.window?.rootViewController = navController

答案 1 :(得分:0)

更改窗口的rootViewController:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    if(User loggin last time) {
        let yourTargetViewController = UIViewController()
        yourTargetViewController.view.backgroundColor = UIColor.redColor()
        self.window?.rootViewController = yourTargetViewController
    }
    return true
}

答案 2 :(得分:0)

这是可行的解决方案

    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let viewControllerB = mainStoryboard.instantiateViewControllerWithIdentifier("tabbar") as! UITabBarController
    let navController = UINavigationController(rootViewController: viewControllerB)
    let appDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
    appDelegate.window?.rootViewController = viewControllerB
    UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(navController, animated: true, completion: nil)

// tabbar是tabbarcontroller的故事板ID