【问题标题】:Change UI Text Tint Color inside ADAL iOS Auth在 ADAL iOS Auth 中更改 UI 文本色调颜色
【发布时间】:2017-07-19 05:10:57
【问题描述】:

在我的应用程序委托中,我已将全局默认色调设置为白色,因为我的应用程序内的所有导航栏都是黑色的。当 ADALiOS 对用户进行身份验证时,我被带到下图所示的屏幕。如果您仔细观察,您会在左上角看到以白色字母显示的“取消”按钮。

是否有任何解决方法可以将文本颜色或导航栏颜色更改为黑色?

viewDidLoad()里面我调用如下方法:

    authManager.login() {
            (authenticated: Bool, token: String) -> Void in
            if (authenticated) {
                self.setupMapView()
                self.getJSON()
            } else {
                print("Authentication Failed!")
                self.loginToolbar.alpha = 1.0
                self.listButton.enabled = false
                self.filterButton.enabled = false
                self.refreshButton.enabled = false
            }
        } 

这是我的AuthManager 类中的login() 函数:

func login(completionBlock:((Bool, String) -> Void)) {
            var er:ADAuthenticationError? = nil
    let authContext = ADAuthenticationContext(authority: authority, error: &er)
    var token: String!
    authContext.acquireTokenWithResource(resourceURI, clientId: clientID, redirectUri: redirectURI, userId: NSUserDefaults.standardUserDefaults().stringForKey("username")) {
        (result: ADAuthenticationResult!) -> Void in
        if result.status.rawValue != AD_SUCCEEDED.rawValue {
            completionBlock(false, result.error.description)
        } else {
            token = result.accessToken
            let username = result.tokenCacheStoreItem.userInformation.userId
            self.storeUsername(username)
            completionBlock(true, token)
        }
    }
}

【问题讨论】:

    标签: ios swift uikit adal


    【解决方案1】:

    如果您查看 ADAL 提供的 AuthenticationContext 上的属性,则会发现一些 ViewController 属性,例如:父级、子级等。

    ADAuthenticationContext 还允许您访问 .webView 属性。也许可以通过这条路线进行定制。

    网页视图:

    _authContext.webView.inputViewController?.navigationController?.navigationBar.barTintColor = .black
    

    父视图

    _authContext.parentController.navigationController?.navigationBar.tintColor = .black
    

    我已尝试访问父导航栏,但没有看到任何成功。

    本周我也一直在解决这个问题,但似乎找不到直接的解决方案,但是我想分享我的发现,希望它可以帮助您解决它。也许其中一些可以引导我们访问控制器的 NavBar,尽管我认为最终需要更改条设置,如 tint/title/color。

    如果我得到它的工作将发布进一步的回应。如果您自己解决了,请更新。

    更新:我已经通过简单地添加我的 AppDelegate 解决了这个问题。

    UINavigationBar.appearance().barStyle = .blackOpaque
    UINavigationBar.appearance().tintColor = .white
    

    如果您只需要在单个页面上使用它,您可以在 viewController 的 Appear/Disappear 方法中进行切换。

    【讨论】:

    • 我已用其他解决方案更新了我的回复。
    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多