如何在swift中正确显示选项卡控制器

时间:2015-07-02 07:52:52

标签: swift uitabbarcontroller uitabbar

我正在为我的应用程序创建一个登录屏幕,所有内容都有意为止,直到我尝试在登录后显示我的主视图(使用标签栏控制器)。

唯一的问题是它只显示标签栏上的第一个项目。我必须按其他按钮才能显示。

我正在使用此代码:

//after login...
var storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

var vc: TabBarViewController = storyboard.instantiateViewControllerWithIdentifier("MainController") as! TabBarViewController

self.presentViewController(vc, animated: true, completion: nil)

我的猜测是我需要同时加载它们,但我不知道......

2 个答案:

答案 0 :(得分:1)

这就是我最近的做法。我将tabBarController和登录屏幕加在一起,一旦用户登录(或完成了第一次屏幕体验),你就可以模态地关闭控制器。

func showloginView() {

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let loginViewController: LoginTableViewController = storyboard.instantiateViewControllerWithIdentifier("LoginTVC") as! LoginTableViewController
self.window?.makeKeyAndVisible()

    var viewController = storyboard.instantiateViewControllerWithIdentifier("LoginTVC") as! LoginTableViewController
    let nav = UINavigationController(rootViewController: viewController)
    self.window?.rootViewController?.presentViewController(nav, animated: true, completion: nil)
}

用于显示tabBarController和编辑任何tabBarItems

let tabBarController = self.window?.rootViewController as? UITabBarController
let tabBarRootViewControllers: Array = tabBarController!.viewControllers!
let nav = tabBarRootViewControllers[0] as? UINavigationController

希望这有助于=)

答案 1 :(得分:0)

如果链接UIButton,可以使用此方法打开UITabBarController(假设您正在使用故事板)

Object getBean(String name, Object... args)throws BeansException

这将弹出当前视图并打开标签栏控制器。