2011-03-22 6 views
0

나는 방법 선언과 같은 버튼에 연결이 기본적으로 경우 : UIButton 메서드에는 SENDER가 특정 형식의 하위 클래스인지 확인하는 방법이 있습니까?

- (IBAction) clickMe:(id)sender { 
..... 
} 

보낸 사람이 형의 UIViewController의 서브 클래스가 있는지 여부를 확인하기 위해이 방법의 방법이 그렇다면, 어떻게 든 뭔가에 액세스 like [sender.view removeFromSuperView]?

이 모든 것이 가능합니까?

감사합니다.

답변

5

당신은

isKindOfClass:

는 수신기가 지정된 클래스의 인스턴스 또는 클래스에서 상속 어떤 클래스의 인스턴스인지 여부를 를 나타내는 부울 값을 반환 할 수 있습니다. (필수) 발신자가 특정 하위 클래스인지 확인하기 위해

그 후 보낸 사람을 UIViewController로 캐스팅하여 뷰를 제거해야합니다. 그렇지 않으면 컴파일러에서 경고를 받게됩니다.

+0

하지만 클래스가 UIViewController의 하위 클래스 인 경우 isKindOfClass가 true를 반환합니다. 내 질문입니까? 예를 들어 동일한 메소드를 호출하는 두 개의 다른 UIViewController가 있습니다. 하위 클래스가 UIViewController인지 확인한 다음 이동하십시오. 각 하위 클래스 이름을 구체적으로 확인하고 싶지 않습니다. –

+0

@Straddle 클래스 C에서 상속 한 클래스 A와 B가있는 경우 A 및 B 인스턴스 모두는 [obj isKindOfClass : [C 클래스]]에 대해 YES를 반환합니다. – Jilouc

+0

@Straddle [보낸 사람 isKindOfClass [UIViewController 클래스]]는 보낸 사람이 UIViewController에서 상속됩니다. –

관련 문제