首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改barTintColor中的activityViewController

更改barTintColor中的activityViewController
EN

Stack Overflow用户
提问于 2018-12-16 18:15:00
回答 1查看 76关注 0票数 1

我有一个快速的4/ iOS 12应用程序,它为所有视图控制器使用自定义的barTintColor,并在appDelegate.swift中设置如下所示:

代码语言:javascript
复制
UINavigationBar.appearance().barTintColor = UIColor(red: 229/255, green: 80/255, blue: 57/255, alpha: 1.0)

但是,当我呈现一个activityViewController时,id'l喜欢更改颜色,这样邮件撰写视图就可以得到一个白色的barTint。我做到这一点的方法是:

代码语言:javascript
复制
let activityViewController = UIActivityViewController(activityItems: textShare , applicationActivities: nil)
            activityViewController.popoverPresentationController?.sourceView = self.view
            self.present(activityViewController, animated: true, completion: { () in

                UINavigationBar.appearance().barTintColor = UIColor.white
            })

但是,当我不考虑activityViewController时,导航条的tintColor对于整个应用程序来说已经发生了变化。这不是我想要的行为。我希望在取消tintColor时设置activityViewController,但我不知道如何捕获"willDisappear“函数,以便将其设置回原来的位置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-16 18:21:58

UIActivityViewControllerUIViewController的子类,因此您可以重写它的方法,如viewWillDisappearviewDidAppear等。

因此,首先创建UIActivityViewController的自定义子类,然后重写它的viewWillDisappear方法,并声明当ViewController消失时应该发生什么。

代码语言:javascript
复制
class YourActivityViewController: UIActivityViewController {
    override func viewWillDisappear(_ animated: Bool) {
        UINavigationBar.appearance().barTintColor = UIColor(red: 229/255, green: 80/255, blue: 57/255, alpha: 1.0)
    }
}

然后将您的activityViewController声明为您的UIActivityViewController子类

代码语言:javascript
复制
let activityViewController = YourActivityViewController(activityItems: textShare , applicationActivities: nil)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53805136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档