title: Trying to customise FUIAuthPickerViewController and getting error in AppDelegate
body: <p>I'm trying to customize <code>FUIAuthPickerViewController</code> so that I can have a customized authentication screen as my login screen using FirebaseUI authentication</p>
  
  <blockquote>
    <p>*** Terminating app due to uncaught exception 'NSGenericException', reason: 'This coder requires that replaced objects be returned from initWithCoder:'</p>
  </blockquote>
  
  <p>I know there's a bug that stops the <code>FUIAuthPickerViewController</code> from being the root view controller, so in <code>Main.Storyboard</code> I've added a blank view controller and set the class to be my <code>CustomLoginViewController</code> which subclasses <code>FUIAuthPickerViewController</code></p>
  
  <p>Wondering if anyone can point me in the right direction? No idea why I'm getting that error.</p>
  
  <p>Thanks</p>
  
  <pre><code>import UIKit
  import FirebaseAuth
  import FirebaseAuthUI
  
  class CustomLoginViewController: FUIAuthPickerViewController {
  
  override init(nibName: String?, bundle: Bundle?, authUI: FUIAuth) {
      super.init(nibName: "FUIAuthPickerViewController", bundle: bundle, authUI: authUI)
  }
  
  required init?(coder aDecoder: NSCoder) {
      super.init(coder: aDecoder)
  }
  
  override func viewDidLoad() {
      super.viewDidLoad()
  }
  
  override func viewDidAppear(_ animated: Bool) {
      super.viewDidAppear(animated)
  
      if !isUserSignedIn() {
          showLoginView()
      }
  }
  
  private func isUserSignedIn() -&gt; Bool {
      guard FIRAuth.auth()?.currentUser != nil else { return false }
      return true
  }
  
  private func showLoginView() {
      if let authVC = FUIAuth.defaultAuthUI()?.authViewController() {
          present(authVC, animated: true, completion: nil)
      }
  }
  </code></pre>
  
  <p>This is my AppDelegate.swift</p>
  
  <pre><code>@UIApplicationMain
  class AppDelegate: UIResponder, UIApplicationDelegate, FUIAuthDelegate {
  
  var window: UIWindow?
  var storyboard: UIStoryboard?
  var authUI: FUIAuth?
  
  let providers: [FUIAuthProvider] = [
      FUIGoogleAuth(),
      FUIFacebookAuth()
  ]
  
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -&gt; Bool {
      // Override point for customization after application launch.
      FIRApp.configure()
  
      authUI = FUIAuth.defaultAuthUI()
      authUI?.delegate = self
      authUI?.providers = providers
  
      return true
  }
  
  func authUI(_ authUI: FUIAuth, didSignInWith user: FIRUser?, error: Error?) {
      print("SIGNED IN")
  }
  
  public func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -&gt; Bool {
      let handled = SDKApplicationDelegate.shared.application(app, open: url, options: options)
  
      return handled || GIDSignIn.sharedInstance().handle(url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
  }
  
  func authPickerViewController(forAuthUI authUI: FUIAuth) -&gt; FUIAuthPickerViewController {
      return CustomLoginViewController(authUI: authUI)
  }
  </code></pre>
  
  <p>This is the full call stack</p>
  
  <pre><code>*** Terminating app due to uncaught exception 'NSGenericException', reason: 'This coder requires that replaced objects be returned from initWithCoder:'
  *** First throw call stack: (   0   CoreFoundation                      0x00000001065c1d4b __exceptionPreprocess + 171  1   libobjc.A.dylib    0x000000010602321e objc_exception_throw + 48     2   CoreFoundation       0x000000010662b2b5 +[NSException raise:format:] + 197  3   UIKit       0x0000000104dda1eb UINibDecoderDecodeObjectForValue + 758   4   UIKit   0x0000000104dd9eee -[UINibDecoder decodeObjectForKey:] + 98     5   UIKit 0x0000000104be5d14 -[UIRuntimeConnection initWithCoder:] + 178    6   UIKit                               0x0000000104dda1a1 UINibDecoderDecodeObjectForValue + 684   7   UIKit                      0x0000000104dda357 UINibDecoderDecodeObjectForValue + 1122   8   UIKit  0x0000000104dd9eee -[UINibDecoder decodeObjectForKey:] + 98  9   UIKit 0x0000000104be4eb8 -[UINib instantiateWithOwner:options:] + 1249  10  UIKit                               0x0000000104fa4f7b -[UIStoryboard instantiateViewControllerWithIdentifier:] + 181   11  UIKit             0x00000001047d747d -[UIApplication
  _loadMainStoryboardFileNamed:bundle:] + 111     12  UIKit                               0x00000001047d7947 -[UIApplication _loadMainInterfaceFile] + 260    13  UIKit                               0x00000001047d5fa8 -[UIApplication
  _runWithMainScene:transitionContext:completion:] + 1406     14  UIKit                               0x00000001047d326d -[UIApplication workspaceDidEndTransaction:] + 188   15  FrontBoardServices                  0x000000010925a6cb
  __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24   16  FrontBoardServices                  0x000000010925a544
  -[FBSSerialQueue _performNext] + 189    17  FrontBoardServices                  0x000000010925a8cd -[FBSSerialQueue _performNextFromRunLoopSource] + 45     18  CoreFoundation                      0x0000000106566761
  __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17     19  CoreFoundation                      0x000000010654b98c
  __CFRunLoopDoSources0 + 556     20  CoreFoundation                      0x000000010654ae76 __CFRunLoopRun + 918     21  CoreFoundation            0x000000010654a884 CFRunLoopRunSpecific + 420     22  UIKit               0x00000001047d1aea -[UIApplication _run] + 434  23  UIKit              0x00000001047d7c68 UIApplicationMain + 159   24  Surfshop               0x0000000100f54cbf main + 111    25  libdyld.dylib                       0x00000001073e968d start + 1    26  ???                                 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException
  </code></pre>