【发布时间】:2017-05-06 06:55:49
【问题描述】:
我能在网上找到的唯一相关问题是 GitHub 上的问题报告: https://github.com/firebase/FirebaseUI-iOS/issues/128
但是,似乎没有任何解决方案。
使用 FirebaseUI,我想对 FUIAuthPickerViewController 进行子类化,以便对其进行一些自定义。当我继承并调用FUIAuth.defaultAuthUI!.authViewController 时,我得到以下运行时异常:
'NSInternalInconsistencyException',原因:'无法在包中加载 NIB
我是 Swift 新手,所以很可能我错误地将 FUIAuthPickerViewController 子类化,但我在网上阅读的所有内容都表明并非如此。
这是我的子类:
import UIKit
import FirebaseAuthUI
class AuthViewController: FUIAuthPickerViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
这是我的代表:
public class AuthManager: NSObject, FUIAuthDelegate {
// TODO: Implement TOS URL
// TODO: Implement custom strings for multiple languages
static let instance = AuthManager()
private override init() {
super.init()
self.firebaseUI().delegate = self;
self.firebaseUI().providers = [FUIGoogleAuth(), FUIFacebookAuth()]
}
public func firebaseUI() -> FUIAuth {
return FUIAuth.defaultAuthUI()!
}
public func firebase() -> FIRAuth {
return FIRAuth.auth()!
}
public func addStateChangeListener(listener: @escaping FIRAuthStateDidChangeListenerBlock) {
self.firebase().addStateDidChangeListener(listener)
}
public func showLoginFrom(viewController: UIViewController) {
viewController.present(self.firebaseUI().authViewController(),
animated: true,
completion: nil)
}
// MARK: FUIAuthDelegate
public func authUI(_ authUI: FUIAuth, didSignInWith user: FIRUser?, error: Error?) {
}
public func authPickerViewController(forAuthUI authUI: FUIAuth) -> FUIAuthPickerViewController {
return AuthViewController(authUI: authUI)
}
}
如果我删除默认的 FUIAuthPickerViewController 一切正常。我只是假设如果未定义子类,子类将从其父类继承其 NIB。
感谢任何帮助。
问候, 科恩
【问题讨论】:
标签: ios swift firebase firebase-authentication firebaseui