[英]FirebaseUI iOS remove cancel button
我是iOS开发的新手。 我想用Firebase建立授权。 我正在使用FirebaseUI-iOS。 我想隐藏初始屏幕上的取消按钮。 你有什么想法怎么做吗?
我以编程方式创建Firebase authViewController:
import UIKit
import Firebase
import FirebaseAuthUI
import FirebaseGoogleAuthUI
class AuthViewController: UIViewController {
fileprivate var _authHandle: FIRAuthStateDidChangeListenerHandle!
var user: FIRUser?
override func viewDidLoad() {
super.viewDidLoad()
configureAuth()
}
func configureAuth() {
let provider: [FUIAuthProvider] = [FUIGoogleAuth()]
FUIAuth.defaultAuthUI()?.providers = provider
FUIAuth.defaultAuthUI()?.isSignInWithEmailHidden = true
// listen for changes in the authorization state
_authHandle = FIRAuth.auth()?.addStateDidChangeListener { (auth: FIRAuth, user: FIRUser?) in
// check if there is a current user
if let activeUser = user {
// check if the current app user is the current FIRUser
if self.user != activeUser {
self.user = activeUser
let name = user!.email!.components(separatedBy: "@")[0]
print(name)
}
} else {
// user must sign in
self.loginSession()
}
}
}
func loginSession() {
let authViewController = FUIAuth.defaultAuthUI()!.authViewController()
present(authViewController, animated: true, completion: nil)
}
deinit {
FIRAuth.auth()?.removeStateDidChangeListener(_authHandle)
}
}
扩展VC并将其添加到viewWillAppear中
extension FUIAuthBaseViewController{
open override func viewWillAppear(_ animated: Bool) {
self.navigationItem.leftBarButtonItem = nil
}
}
为此,您可以在viewDidLoad
或viewWillAppear
leftBarButtonItem
设置为nil
。
self.navigationItem.leftBarButtonItem = nil
你应该设置
FUIAuth.defaultAuthUI()?.shouldHideCancelButton = true
在Objective C中,只需扩展FUIAuthPickerView控制器即可。
在此扩展选取器视图的ViewDidLoad中,添加以下两行:
self.navigationController.navigationItem.hidesBackButton = NO;
[[self navigationItem] setLeftBarButtonItem:nil];
请注意,在您实例化Auth UI的文件中,您将需要以下方法:
- (FUIAuthPickerViewController *)authPickerViewControllerForAuthUI:(FUIAuth *)authUI {
return [[FUICustomAuthPickerViewController alloc] initWithAuthUI:authUI];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.