메서드가있는 viewController가 있습니다. doSomething :. 단추를 사용하여 선택기를 호출 할 수 있도록 "대상을 추가했습니다."단추가있는 메뉴를 설정하는 클래스 메뉴가 있습니다. 이 서브 클래스는 viewController로부터 인스턴스화됩니다.클래스간에 @selector를 전달하여 인스턴스화 된 객체에서 메서드를 호출합니다.
인스턴스화 된 메뉴의 버튼을 탭하면 viewController에서 메소드를 호출하고 싶습니다. 이것을 설정하는 명백한 방법은 NSNotifications에 옵저버를 추가하는 것이지만, 일종의 klunky처럼 보인다. 어떻게 든과 같이 인스턴스에 뷰 컨트롤러에서 선택기를 전달할 수 있습니다
의 ViewController에서 호출
-(void)setupMenuWithAction:(SEL)action {
Menu.h
에 :[menu setupMenuWithAction:@selector(doSomething:)];
그것을 시도하고 작동하지 않습니다 , 버튼을 도청 때 인식 할 수없는 선택기 오류를 제공하지만, 그것이 유효한 개념인지 궁금하네요, 만약 그렇다면 어떻게 고칠 수 있습니다.
매우 재미 있지만, 비트 추가 방법은 확실하지 않습니다 : [object performSelector : action]; ... 메서드 setupMenuWithAction : 버튼을 만들고 선택기와 함께 대상을 추가합니다. performSelector :를 호출하는 또 다른 메소드를 작성합니까? 죄송합니다. 밀도가 있습니다. – Mrwolfy
@Mrwolfy 문제 없습니다. 버튼에 대한 액션으로 직접 추가하고 싶다는 것을 깨닫지 못했습니다. 이것을 사용하십시오 - [''[myButton addTarget : target action : Action forControlEvents : UIControlEventTouchUpInside];''' – gtmtg
그래, 총 감각을 만드는 네, 그리고 그랬어. 그래도 알 수없는 선택기 오류를 제공합니다. – Mrwolfy