ios 如何限制.appearance不影响系统ViewController,如UIActivityViewController?

qyswt5oh  于 2023-06-07  发布在  iOS
关注(0)|答案(1)|浏览(96)

我在一个现有的应用程序中使用appearance进行样式设置和应用不同的主题。例如,我使用UIBarButtonItem.appearance().setTitleTextAttributes(...)将自定义字体和白色应用到应用程序中的所有UIBarButtonItem
现在我注意到在UIActivityViewController中保存和取消按钮丢失了。它们并不是真的丢失,而是隐藏起来,显示为白色背景上的白色文本。这当然不是故意的。
有没有什么简单的方法可以不将外观应用于这样的系统视图/视图控制器,而只应用于我自己的应用程序的视图/视图控制器?类似于...appearance(whenNOTContainedIn...)
使用...appearance(whenContainedInInstancesOf...)会很麻烦,因为我在许多不同的容器中使用UIBarButtonItems,而没有一个公共的超类。

dw1jzc5e

dw1jzc5e1#

这并不是你所要求的,但是你总是可以创建一个UIBarButtonItem的子类,并在你的视图控制器上使用它。例如:

class AppBarButtonItem: UIBarButtonItem {
    override init() {
        super.init()
        tintColor = .green
    }
    required init?(coder: NSCoder) {
        super.init(coder: coder)
        tintColor = .green
    }
}

相关问题