我編程方式創建UISegmented控制,而不storyboard.Instead從陣列中拔出分割的項目,我想使用模型類的,「_.SegmentedControlItems」不實現methodSignatureForSelector: - 麻煩了無法識別的選擇
class SegmentedControlItems{
let title: String
init(title:String) {
self.title = title
}
}
然後,在表視圖功能,我寫了下面的代碼,如果我通過項目的陣列
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
headerView.backgroundColor = UIColor.white
let items:[SegmentedControlItems] = {
let item1 = SegmentedControlItems(title: "Repeat Task")
let item2 = SegmentedControlItems(title: "One time task")
return [item1, item2]
}()
let segmentedControl: UISegmentedControl = {
let segmentedControl = UISegmentedControl(items: items)
segmentedControl.tintColor = UIColor(red:0.44, green:0.75, blue:0.27, alpha:1.0)
segmentedControl.selectedSegmentIndex = 0
segmentedControl.translatesAutoresizingMaskIntoConstraints = false
return segmentedControl
}()
headerView.addSubview(segmentedControl)
}
我的應用程序工作正常。但是在我寫上面的代碼後崩潰了。並給了我這個錯誤控制檯 - SForwarding:警告:類對象0x600000251640 'Appname.SegmentedControlItems' 不實現methodSignatureForSelector: - 麻煩了 無法識別的選擇 - [Appname.SegmentedControlItems複製]
請幫
爲什麼你使用'SegmentedControlItems'? '-init(items:)'等待一個String或UIImage對象的數組。一個字符串符合'NSCopying'協議,所以我猜'UISegmentedControl'會拷貝它們。要麼你不使用'SegmentedControlItems',或者你可以讓它們符合'NSCopying'。 – Larme