我正在为我的应用程序创建一个登录屏幕,所有内容都有意为止,直到我尝试在登录后显示我的主视图(使用标签栏控制器)。
唯一的问题是它只显示标签栏上的第一个项目。我必须按其他按钮才能显示。
我正在使用此代码:
//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)
我的猜测是我需要同时加载它们,但我不知道......
答案 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
这将弹出当前视图并打开标签栏控制器。