我是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)
}
}
答案 0 :(得分:8)
扩展VC并将其添加到viewWillAppear
中extension FUIAuthBaseViewController{
open override func viewWillAppear(_ animated: Bool) {
self.navigationItem.leftBarButtonItem = nil
}
}
答案 1 :(得分:3)
为此,您可以在leftBarButtonItem
或nil
中将viewDidLoad
设置为viewWillAppear
。
self.navigationItem.leftBarButtonItem = nil
答案 2 :(得分:2)
您应该设置
FUIAuth.defaultAuthUI()?.shouldHideCancelButton = true
答案 3 :(得分:0)
在目标C中,只需扩展FUIAuthPickerView Controller。
在此扩展选择器视图的ViewDidLoad中,添加以下两行:
self.navigationController.navigationItem.hidesBackButton = NO;
[[self navigationItem] setLeftBarButtonItem:nil];
请注意,在实例化Auth UI的文件中,您将需要此方法:
- (FUIAuthPickerViewController *)authPickerViewControllerForAuthUI:(FUIAuth *)authUI {
return [[FUICustomAuthPickerViewController alloc] initWithAuthUI:authUI];
}