2011-09-08 3 views
0

어떤 이유로 든 내 UIButton과의 상호 작용은 한 번만 작동합니다. 나는 IBAction과 "addTarget"을 사용하여 IBOutlet을 시도했다. 나는 이유를 모른다.버튼 터치 만 작동합니다

상황 :

BaseViewController ViewController1

- (IBAction) button_touched:(id)sender; //<-- Declared here, but not implemented 
- (void)userInputReceived:(BOOL)bSuccess; //<-- Declared here, but not implemented 

: 나는 "addTarget을"을 시도하지만 그 중 하나 (첫번째 작품을 만지지 작동하지 않는 경우 BaseViewController

- (IBAction) button_touched:(id)sender; //<-- Implemented here 
- (void)userInputReceived:(BOOL)bSuccess; //<-- Implemented here 

는 또한이이며, 하지만 두 번째가 아님)

"button_touched"메소드에서

(내부 SomeOtherClass) :

[someOtherClassObject doSomethingWithMyView:self]; 

클래스는 단순히 메시지 상자를 팝업 사용자 입력을 취득, 그때 다시의 ViewController에 호출 ViewController1 (VC1)는,이 같은 다른 클래스로 전화를 걸 :

-(void)doSomethingWithMyView:(BaseViewController*)vc 
{ 
    // Do Something 
    [vc userInputReceived:TRUE]; 
} 

이 워크 플로가 한 번 실행되면 단추 터치는 "button_touch"메서드를 다시 호출하지 않습니다. 내가 무엇을해도, 나는 이것을 다시 부름받을 수 없다.

인기있는 BBS 포럼의 스레드에서 누군가가 당신이 생각하는 개체 (vc1)가 없기 때문에 이런 문제가 발생할 수 있다고 말했지만 오히려 다른 인스턴스라고합니다. 그래서 NSLog ("인스턴스 : % p", 자체)와 같은 인스턴스를 여러 위치에 기록했으며 항상 동일합니다.

모든 아이디어를 매우 높이 평가합니다. 이것은 매우 실망 스럽습니다.

+0

당신이 당신의 button_touched에서 모든 코드를 게시 할 수 라인을 추가? 또한 IBAction에 단추를 얼마나 정확하게 연결했는지, 어떤 종류의 터치를 찾고 계십니까? – Jamie

답변

0

어둠 속에서 촬영했을 수도 있지만,보기 컨트롤러의보기가 다른 개체 (이 개체의 유형은 무엇이며 메시지는 어떻게 표시됩니까?)에 메시지가 표시되어 첫 번째 응답자 상태가 손실 될 수 있습니다.

시도 명세서 후 : 방법 :

[vc userInputReceived:TRUE]; 

[[UIApplication sharedApplication].keyWindow makeFirstResponder:vc.view]; 
+0

좋은 생각이지만 주사위는 없습니다. 나는 그것이 무엇인지를 마침내 알았고, 많은 사람들이 내 코드를 보지 않고서도 그것을 발견 할 수있는 방법이 없었습니다. 그러나 다른 사람이 비슷한 문제가 발생하면 코드 경로를주의 깊게 확인하십시오. 내 기본 클래스에서 하나의 하위 클래스는 제거해야하지만 다른 클래스는 삭제해야하는 개체를 삭제했습니다. 이 데이터 지우기는 후속 메시지가 실행되지 않게하는 원인입니다. 메시지를 보내기 전에 nil을 확인했습니다. 끔찍한, 나는 알고있다. 나는 많은 시간을 낭비하지 않았 으면 좋겠지 만, 다른 누군가를 구할 수 있기를 바랍니다. :) – thephatp