[英]iOS: Show login viewcontroller or “another” viewcontroller inside of UITabbarController?
I have a tabbar with 5 tabs. 我有一个带有5个标签的标签栏。
3 of these tabs requires authentication by having an account. 这些标签中的3个需要拥有帐户才能进行身份验证。 I know one solution is to present a modal viewcontroller when pressing one of these tabs. 我知道一种解决方案是在按下这些选项卡之一时显示一个模态视图控制器。
I wish to present the login viewcontroller inside of the tabs instead of showing it modally. 我希望在选项卡中显示登录ViewController,而不是模态显示。 How can this be done and how can I "reload" the tabbar with the other viewcontrollers once a user has logged in? 用户登录后,该如何完成?如何将“ tabbar”与其他ViewController“重新加载”?
I would do this by creating a subclass of UINavigationController which receives a UIViewController to show if user is logged in, and shows the login page in the other case. 我将通过创建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())
]
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.