Я пытаюсь достичь чего-то, я не уверен, выполнимо ли это. У меня есть xib для UITableViewCell
, в котором есть кнопка UIB с пользовательским классом, назначенным в раскадровке, т.е. MainButtonSuperClass
. В UITableViewCell.swift
розетка подключена следующим образом:
@IBOutlet weak var button: MainButtonSuperClass!
Многие различные контроллеры настраивают TableViewCell
, но пользовательский интерфейс кнопки будет отличаться для всех этих контроллеров, как определено в подклассе, т.е.
final class MainButtonSubClass: MainButtonSuperClass {
override func configure(){//different style of button }
}
Как мне этого добиться? до сих пор я попробовал следующее,
let button: MainButtonSuperClass = MainButtonSubClass()
button.configure()
cell.button = button
Но это не выбирает стиль
РЕДАКТИРОВАТЬ:
//tableview cell
class TableViewCell: UITableViewCell {
@IBOutlet weak var button: MainButtonSuperClass!
}
//Controller A wants default style of superclass (MainButtonSuperClass)
func configureButton(buttonCell: TableViewCell) {
buttonCell.button.configure() //works
}
//Controller B wants different style of subclass (MainButtonSubClass)
func configureButton(buttonCell: TableViewCell) {
let button: MainButtonSuperClass = MainButtonSubClass()
button.configure()
cell.button = button // doesn't work or adopts the style
}
//Custom button's classes
final class MainButtonSuperClass: UIButton {
override func configure(){//styled button }
}
final class MainButtonSubClass: MainButtonSuperClass {
override func configure(){//different style of button }
}