2
У меня есть класс протокола с именем MenuDisplayable. Этот протокол имеет расширение.Функция расширения протокола вызова из селектора
protocol MenuDisplayable {}
extension MenuDisplayable where Self: UIViewController {
func showMenu() {
let storyboard = UIStoryboard(storyboard: .Menu)
let menuVC = storyboard.instantiateInitialViewController() as! MenuVC
present(menuVC, animated: true, completion: nil)
}
}
Когда я вызвать функцию "showMenu" от #selector внутри класса ViewController
let rightButton = UIBarButtonItem(image: #imageLiteral(resourceName: "icon_hamb").withRenderingMode(.alwaysTemplate), style: .plain, target: self, action: #selector(StorySelectCarouselVC.showMenu))
я получаю сообщение об ошибке, как «аргумент '#selector' относится к методу экземпляра 'showMenu()', который является не подвергается объективу-C "
Когда я добавить «@objc» префикс, я получаю ошибку ниже «@objc» могут быть использованы только с членами классов, «@objc» протоколов и конкретных расширений классов –