2016-08-29 9 views
48

próbuję dodać cel w przycisk ten sposób:Selector składnia do szybkiego 3,0

btnAll.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside) 

Ale to daje mi błąd:

Use of unresolved identifier 'buttonTapped'

Ale zadeklarowanej funkcji takich jak:

func buttonTapped(sender: UIButton) { 

    print("All Tapped") 
} 

Czy ktoś może mi powiedzieć, co jest właściwym sposobem, aby to zrobić w szybkim 3.

+2

Pokaż nam swoją metodę buttonTouch. Metody IBAction mogą mieć 0, 1 lub 2 parametry w zależności od tego, jak je skonfigurujesz, a my nie wiemy, z jakiego formularza korzystałeś. –

Odpowiedz

70

Dodaj cel podobny,

powinien być zapisany jako #selector(buttonTapped(sender:)) lub użyj #selector(buttonTapped(_:))

btnAll.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside) 

następnie zmienić funkcję jak,

func buttonTapped(_ sender : UIButton){ 

.... 
} 
+11

To jest to, co już odpowiedziałem .. :) –

+0

To zmienia funkcję na @objc –

+0

@NikKov - pardon –

17

Można zrobić to w ten sposób:

btnAll.addTarget(self, action: #selector(buttonTapped(sender:)), for: .touchUpInside)