【问题标题】:UISegmentedControl error after upgrading to Xcode 11.x升级到 Xcode 11.x 后出现 UISegmentedControl 错误
【发布时间】:2019-10-17 05:51:29
【问题描述】:
安装Xcode 11后,在iOS 12移动设备上测试时,一直出现以下错误。
它总是使应用程序崩溃。
*** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,
原因:'[ setValue:forUndefinedKey:]:
此类与键 selectedSegmentTintColor 的键值编码不兼容。'
在 iOS 13 上,它不会崩溃。
【问题讨论】:
标签:
ios
uisegmentedcontrol
ios13
【解决方案1】:
这个错误是由于在 xib 文件中设置 Selected Tint 颜色引起的。当它设置为预定义的颜色(在Colors.xcassets)时,会导致运行时出现上述错误并导致应用崩溃。
要处理可行的色调,必须以编程方式完成。
if #available(iOS 13.0, *) {
unitSegment.selectedSegmentTintColor = UIColor(named: "Primary")!
} else {
unitSegment.tintColor = UIColor(named: "Primary")!
}
截至目前,崩溃错误出现在 Xcode 11.0 和 Xcode 11.1 上。
Apple 应该在 Xcode 和 Swift 5.1 上默认处理这个问题,或者至少在选择 xib 文件的预定义颜色时提示错误,尤其是当我的目标设置为 12.0 时。