Programming/iOS

[iOS/Swift3.0] IBAction: Target-Action 알아보기

devssun 2018. 5. 15. 22:49
728x90
반응형

IBAction - target-action

  • IBAction으로 객체에서 발생하는 액션을 코드로 연결해 사용자 동작에 상호 작용할 수 있게 만들 수 있다.
  • UIKit에는 UIButton, UISwitch, UIStepper 등 UIControl을 상속받은 다양한 컨트롤 클래스가 있다. 그런 컨트롤 객체에 발생한 다양한 이벤트 종류를 특정 액션 메서드에 연결할 수 있다.

  • 메소드의 형식을 갖는 IBAction은 리턴 타입으로 void 형을 가진다.

  • 사용자 인터페이스에서 컨트롤은 사용자의 의도를 해석하고 다른 개체가 해당 요청을 수행하도록 지시한다.

  • 스토리보드에서 ViewController로 액션을 연결하는 방식이 있고, addTarget() 메소드를 사용하여 이벤트를 연결할 수 있다.

사용자 인터페이스에서 컨트롤의 역할

  • 사용자의 의도를 해석하고 다른 개체가 해당 요청을 수행하도록 지시한다.

    • target은 컨트롤 요소가 동작을 수행하도록 요청하는 대상이 되는 객체
    • action은 target이 수행해야 하는 메소드를 @selector()형태로 정의한 것이다.
  • 사용자가 컨트롤을 클릭하거나 return 키를 눌러 컨트롤을 조작하면 하드웨어는 원시 이벤트를 생성한다

    컨트롤은 이벤트를 받아들이고 응용 프로그램에 특정한 명령으로 변환한다

    이벤트 자체에는 사용자의 의도에 대해 많은 정보를 제공하지않는다

    사용자가 마우스 버튼을 클릭했거나 키를 눌렀음을 알려준다

    이벤트와 명령어 사이의 변환을 제공하기 위해서는 어떤 메커니즘이 필요하다

    이를 target-action이라 부른다

  • 즉 컨트롤 객체에서 특정 이벤트가 발생하면 미리 지정해 둔 타겟의 액션을 호출하게 된다.

target action 메소드 형식

func doSomething()
func doSomething(sender: UIButton)
func doSomething(sender: UIButton, forEvent event: UIEvent)

버튼과 메소드 연결하기

  • addTarget(_:action:for:) 메소드 사용
  • 예제 : pushButton.addTarget(self, action: #selector(doSomething(_:)), for: .touchUpInside)

References 

http://www.edwith.org/boostcourse-ios 

https://developer.apple.com/library/content/documentation/General/Conceptual/CocoaEncyclopedia/Target-Action/Target-Action.html 

https://soooprmx.com/archives/4486

반응형