비디오: AdMob Rewarded Video - Mobile Ads Garage #7 2024
iOS 앱 사용자 인터페이스의 한가지 요구 사항은 사용자가 버튼을 탭하면 무언가가 발생하도록 코드를 버튼에 연결하려는 상황을 처리 할 수 있다는 것입니다. 이 요구 사항에는 iOS 프로그래밍의 주요 디자인 패턴 중 하나 인 Target-Action 패턴 이 사용됩니다.
Target-Action 패턴을 사용하면 앱이 메시지가 표시 될 때 어떤 조치를 취해야한다는 것을 알립니다. 사용자는 예를 들어 버튼을 누르거나 텍스트를 입력 할 수 있으며 앱은 어떤 방식 으로든 응답해야합니다. 컨트롤은 사용자가 지정하는 메시지 (작업 메시지)를 특정 작업을 처리하도록 선택한 대상 (일반적으로보기 컨트롤러 개체 인 대상)에 보냅니다.
사용자가 버튼을 탭하여 컨트롤을 조작하면 iPhone 또는 iPad에서 이벤트를 생성합니다. 특정 동작 메시지를 트리거하는 이벤트는 메시지를 보내는 개체가 모든 개체가 될 수있는 것과 마찬가지로 모든 것이 될 수 있습니다. 제스처 인식기 객체는 제스처를 인식하면 다른 객체에 동작 메시지를 보낼 수 있습니다. 그러나 Target-Action 패턴은 대개 버튼 및 슬라이더와 같은 컨트롤과 함께 나타납니다.
이벤트는 그다지 알려주지 않지만 Target-Action은 적절한 객체에 앱 특정 명령을 보내는 방법을 제공합니다.
iOS 기기에서 자동차를 시동 할 수있는 앱을 개발하려는 경우 (겨울에는 미네소타 주 히빙 (Hibbing)과 같은 장소에 사는 사람들에게는 나쁜 생각이 아닙니다) 시작과 히터라는 두 개의 버튼을 표시 할 수 있습니다. 인터페이스 빌더를 사용하여 사용자가 시작을 탭할 때 대상이 CarController 객체이고 호출 할 메소드가 점화라고 지정할 수 있습니다.
하지만 같은 화면의 웨이브 플래그 버튼을 터치하면 웨이브 플래그 메시지를 동일한보기 컨트롤러로 보낼 수 있기를 원합니다. 메시지를 지정할 수 없으면 모든 단추가 동일한 메시지를 보내야합니다.그러면 메시지를 보낸 버튼과 응답 할 작업을 식별해야하기 때문에 코딩이 더욱 어려워지고 복잡해집니다. 또한 사용자 인터페이스를 더 많이 변경하고 오류가 발생하기 쉽습니다.
Interface Builder를 사용하여 컨트롤의 액션과 타겟을 설정합니다.코드를 작성하지 않고 컨트롤에 응답해야하는 메서드 (개체)를 지정해야합니다.
액션 메소드는 특정
서명 (즉, 형식)을가집니다. - (IBAction) testDrive: (id) sender;
void 반환 형식 대신 사용되는 형식 한정자 IBAction은 인터페이스 작성기가이를 알 수 있도록 선언 된 메서드를 동작으로 플래그 지정합니다. 또한 아울렛과 마찬가지로 인터페이스 빌더 편집기에서 실제로 연결을 만들 수 있으며 Xcode가 필요한 코드를 생성합니다.
sender 매개 변수는 동작 메시지를 보내는 제어 개체입니다. 조치 메시지에 응답 할 때 송신자에게 조회하여 조치 메시지를 트리거하는 이벤트의 컨텍스트에 대한 자세한 정보를 얻을 수 있습니다.
제어 객체의 액션과 타겟을 프로그래밍 방식으로 또는 Interface Builder에서 설정할 수 있습니다. 이러한 속성을 효과적으로 설정하면 작업을 통해 컨트롤과 대상이 연결됩니다. 인터페이스 작성기에서 컨트롤과 대상을 연결하면 연결이 nib 파일에 보관됩니다. 앱이 나중에 nib 파일을로드하면 연결이 복원됩니다.
IBAction은 IBOutlet과 비슷하지만 코드에서 아무 것도하지 않고 Interface Builder에서 사용하는 태그입니다.