簡體   English   中英

取消按鈕在谷歌登錄iOS框架中不可見

[英]Cancel button not visible in google sign in framework for iOS

這個問題可能非常微不足道,但這讓我頭疼了6個小時。 我在我的項目中集成了谷歌SDK for iOS,除了取消按鈕,一切似乎都正常。 在此輸入圖像描述

當我點擊登錄屏幕中的谷歌按鈕時,會出現此屏幕。 但如果用戶決定取消谷歌登錄,則無法解除此問題。 通常,取消按鈕應該位於左側欄按鈕項的位置,但在這種情況下它會丟失。

我在這做錯了什么?

您的AppDelegate中是否有任何UIAppearance配置? 也許條形顏色與按鈕文字顏色相同。 我通過在AppDelegate.swift文件中為UINavigationbar.appearance()代理公開的大多數相關屬性設置全局默認值來解決了這個問題(對於ObjC應該類似)

    UINavigationBar.appearance().barTintColor = UIColor(red:0.00, green:0.42, blue:0.90, alpha:1.0)

您將在兩種情況下獲得取消按鈕:

1 - 如果您已在此屏幕中輸入谷歌用戶名和密碼並移至下一個。

2 - 如果您已安裝Google Plus應用並已登錄。

在目前的情況下,你不會得到取消按鈕作為它的webview。 因此解決方案是您需要創建自己的后退按鈕。

創建一個條形按鈕項並將其分配給navigationItem的leftBarButtonItem。 將此代碼放在viewDidLoad

    UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
        [myButton setImage:[UIImage imageNamed:@"CancelImage" forState:UIControlStateNormal];
        [myButton setContentEdgeInsets:UIEdgeInsetsMake(0, -15, 0, 0)];
        [myButton addTarget:self action:@selector(backToHOmePage) forControlEvents:UIControlEventTouchUpInside];
        UIBarButtonItem *customBackBtn = [[UIBarButtonItem alloc] initWithCustomView:myButton];
        self.navigationItem.leftBarButtonItem = customBackBtn;

然后創建backToHomePageMethod -

-(void)backToHOmePage
{
    [self.navigationController popToRootViewControllerAnimated:YES];
}

嘗試刪除GoogleSignIn.frameworkGoogleSignIn.bundle文件並將其添加回來。

此外,請確保已將GoogleSignIn.bundle添加到Xcode項目的Copy Bundle Resources構建階段(轉到Targets> YourProject> Build Phases> Copy Bundle Resources並添加GoogleSignIn.bundle )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM