diff --git a/FirebaseAuthUI/FUIAuth.h b/FirebaseAuthUI/FUIAuth.h index 6dda18424fd..1bb094aa7a3 100644 --- a/FirebaseAuthUI/FUIAuth.h +++ b/FirebaseAuthUI/FUIAuth.h @@ -181,6 +181,11 @@ __attribute__((deprecated("Instead use authUI:didSignInWithAuthDataResult:error: */ @property(nonatomic, assign) BOOL allowNewEmailAccounts; +/** @property shouldHideCancelButton + @brief Whether to hide the canel button, defaults to NO. + */ +@property(nonatomic, assign) BOOL shouldHideCancelButton; + /** @property customStringsBundle @brief Custom strings bundle supplied by the developer. Nil when there is no custom strings bundle set. In which case the default bundle will be used. diff --git a/FirebaseAuthUI/FUIAuthPickerViewController.m b/FirebaseAuthUI/FUIAuthPickerViewController.m index b7eeaa22d77..20cb57bd23e 100644 --- a/FirebaseAuthUI/FUIAuthPickerViewController.m +++ b/FirebaseAuthUI/FUIAuthPickerViewController.m @@ -80,11 +80,13 @@ - (instancetype)initWithNibName:(NSString *)nibNameOrNil - (void)viewDidLoad { [super viewDidLoad]; - UIBarButtonItem *cancelBarButton = - [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(cancelAuthorization)]; - self.navigationItem.leftBarButtonItem = cancelBarButton; + if (!self.authUI.shouldHideCancelButton) { + UIBarButtonItem *cancelBarButton = + [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel + target:self + action:@selector(cancelAuthorization)]; + self.navigationItem.leftBarButtonItem = cancelBarButton; + } self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:FUILocalizedString(kStr_Back) style:UIBarButtonItemStylePlain diff --git a/FirebaseAuthUI/FUIEmailEntryViewController.m b/FirebaseAuthUI/FUIEmailEntryViewController.m index 883e06ad0f5..18b79f5e125 100644 --- a/FirebaseAuthUI/FUIEmailEntryViewController.m +++ b/FirebaseAuthUI/FUIEmailEntryViewController.m @@ -102,11 +102,13 @@ - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (self.navigationController.viewControllers.firstObject == self) { - UIBarButtonItem *cancelBarButton = - [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(cancelAuthorization)]; - self.navigationItem.leftBarButtonItem = cancelBarButton; + if (!self.authUI.shouldHideCancelButton) { + UIBarButtonItem *cancelBarButton = + [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel + target:self + action:@selector(cancelAuthorization)]; + self.navigationItem.leftBarButtonItem = cancelBarButton; + } self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:FUILocalizedString(kStr_Back) style:UIBarButtonItemStylePlain diff --git a/FirebaseAuthUI/FUIPasswordSignInViewController.m b/FirebaseAuthUI/FUIPasswordSignInViewController.m index e080e00144e..d5272f62592 100644 --- a/FirebaseAuthUI/FUIPasswordSignInViewController.m +++ b/FirebaseAuthUI/FUIPasswordSignInViewController.m @@ -96,20 +96,22 @@ - (void)viewDidLoad { } - (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - if (self.navigationController.viewControllers.firstObject == self) { - UIBarButtonItem *cancelBarButton = - [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(cancelAuthorization)]; - self.navigationItem.leftBarButtonItem = cancelBarButton; - self.navigationItem.backBarButtonItem = - [[UIBarButtonItem alloc] initWithTitle:FUILocalizedString(kStr_Back) - style:UIBarButtonItemStylePlain - target:nil - action:nil]; + [super viewWillAppear:animated]; + + if (self.navigationController.viewControllers.firstObject == self) { + if (!self.authUI.shouldHideCancelButton) { + UIBarButtonItem *cancelBarButton = + [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel + target:self + action:@selector(cancelAuthorization)]; + self.navigationItem.leftBarButtonItem = cancelBarButton; } + self.navigationItem.backBarButtonItem = + [[UIBarButtonItem alloc] initWithTitle:FUILocalizedString(kStr_Back) + style:UIBarButtonItemStylePlain + target:nil + action:nil]; + } } #pragma mark - Actions diff --git a/FirebasePhoneAuthUI/FUIPhoneEntryViewController.m b/FirebasePhoneAuthUI/FUIPhoneEntryViewController.m index 03db4454695..f5260a00f74 100644 --- a/FirebasePhoneAuthUI/FUIPhoneEntryViewController.m +++ b/FirebasePhoneAuthUI/FUIPhoneEntryViewController.m @@ -140,11 +140,20 @@ - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (self.navigationController.viewControllers.firstObject == self) { - UIBarButtonItem *cancelBarButton = - [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(cancelAuthorization)]; - self.navigationItem.leftBarButtonItem = cancelBarButton; + if (self.authUI.providers.count != 1){ + UIBarButtonItem *cancelBarButton = + [[UIBarButtonItem alloc] initWithTitle:FUILocalizedString(kStr_Back) + style:UIBarButtonItemStylePlain + target:self + action:@selector(cancelAuthorization)]; + self.navigationItem.leftBarButtonItem = cancelBarButton; + } else if (!self.authUI.shouldHideCancelButton) { + UIBarButtonItem *cancelBarButton = + [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel + target:self + action:@selector(cancelAuthorization)]; + self.navigationItem.leftBarButtonItem = cancelBarButton; + } self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:FUILocalizedString(kStr_Back) style:UIBarButtonItemStylePlain