protocol Themeable {
func themeDidUpdate(currentTheme: Theme) -> Void
}
extension Themeable where Self: UIViewController {
func switchCurrentTheme() {
Theme.switchTheme()
themeDidUpdate(Theme.currentTheme)
}
func addSwitchThemeGestureRecognizer() {
let gestureRecognizer = UISwipeGestureRecognizer(target: self, action:#selector(Self.switchCurrentTheme))
gestureRecognizer.direction = .Down
gestureRecognizer.numberOfTouchesRequired = 2
self.view.addGestureRecognizer(gestureRecognizer)
}
}
#selector(Self.switchCurrentTheme)
bulamıyorum o @objc
yönergesi üzerinden maruz değildir. Bu davranışı uzantıma eklemek mümkün mü?
GÜNCELLEME:Theme
bir Swift enum, yani emin değilim
@OgreSwamp sizin için çalıştı mı? –
Siz çözüm işe yaramıyor. Sağladığınız bağlantıdaki çözüm benim için de çalışmıyor. Çok özel bir durumu anlatıyor - yöntem çağırma işleminden önce bekliyor. Evet, orada objc hedef/eylem kalıbı kullanarak önleyebilirsiniz ama bildiğim kadarıyla işaret etti dinleyici eklemek için başka bir yolu yoktur. – OgreSwamp