我有一个包含 5 个标签的标签栏。
其中 3 个选项卡需要通过帐户进行身份验证。
我知道一种解决方案是在按下其中一个选项卡时显示模态视图 Controller 。
我希望在选项卡内显示登录 View Controller ,而不是模态显示。如何做到这一点以及如何在用户登录后使用其他 View Controller “重新加载”标签栏?
最佳答案
我会通过创建 UINavigationController 的子类来实现这一点,该子类接收 UIViewController 以显示用户是否已登录,并在其他情况下显示登录页面。
class CustomNavController:UINavigationViewController {
let loggedInViewController:UIViewController
init(loggedInVC:UIViewController) {
loggedInViewController = loggedInVC
if (userLoggedIn) {
onLogin()
} else {
onLogout()
}
//setup listeners for authentication
super.init()
}
onLogout () {
self.viewControllers = [AuthenticationVC()]
}
onLogin () {
self.viewControllers = [loggedInViewController]
}
}
//code for setting up your UITabBarViewController
class MyTabbar:UITabBarViewController {
init() {
viewControllers = [
FirstVC(),
SecondVC(),
CustomNavController(ThirdVC()),
CustomNavController(ForthVC()),
CustomNavController(FifthVC())
]
}
}
关于iOS:在 UITabbarController 中显示登录 View Controller 或 "another" View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29073992/