我有5个标签栏项目,如果没有用户登录,那么任意标签点击打开一些消息视图控制器和登录按钮而已,如果登录然后所有连接的视图控制器会从标签的物品打开。
它不是一个很好的UX /流。但无论如何,这个解决方案,如果你想继续使用相同的尝试。
// create a protocol
protocol loginIntimation {
func loginSuccess()
func loginFailure()
}
在您的登录视图 - 控制
var delegate:loginIntimation?
处理您的登录API的结果,如果成功
self.delegate?.loginSuccess()
//your code to dismiss or pop your login viewcontroller
也处理故障是否或不登录解聘VC
self.delegate?.loginFailure()
//your code to dismiss or pop your login viewcontroller
而现在在的TabBar的根视图控制器,创建由具有登录子视图或注册按钮和处理您的UI按loginIntimation
class TabBarViewController1: UIViewController, loginIntimation
{
@IBOutlet weak var viewNavigateToLogin: UIView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
// Check user login
// if logined hide the view or else show the view
self.viewNavigateToLogin.isHidden = false (if not logined)
}
func loginSuccess() {
// Handle if login success
// Hide the view
self.viewNavigateToLogin.isHidden = true
}
func loginFailure() {
// Handle if login failure
// Show the view
self.viewNavigateToLogin.isHidden = false
}
}
并处理您的登录或注册viewNavigateToLogin视图内按钮操作导航或呈现登录视图控制器。