2012-02-01 5 views
1

탐색 바의 버튼을 클릭 할 때 호출되는 addClicked 메소드가 있습니다. 나중에이 코드를 단추를 클릭하지 않고도 호출하고 싶습니다. 이 메서드를 호출하는 구문은 무엇입니까?ViewController에서 버튼 메서드를 호출하려면 어떻게해야합니까?

- (void) add_Clicked:(id)sender { 

내가 시도 :

[self add_Clicked:]; 

[add_Clicked:]; 

[self add_Clicked: self]; 

마지막 작품을하지만 난 이유를 모르겠어요

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] 
              initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
              target:self action:@selector(add_Clicked:)]; 

기능 통화 인은 다음과 같습니다. 누군가가 어떻게 작동하는지 설명 할 수있는 문서 링크를 제공 할 수 있습니까?

답변

1

발신자에게 뭔가를 전달해야합니다. 그것이 바로 마지막 작품입니다. 당신이 대상으로 현재의 클래스에 추가하기 때문에

+0

설명해 주셔서 감사합니다. 나중에 다른 AddQuoteViewController 클래스에서이 RootViewController 클래스의 변수 집합에 액세스하려고 시도하고 변수에 액세스 할 수없는 것처럼 다른 질문이 있습니다. 나는 당신이 볼 수 있으면 여기에 [link] (http://stackoverflow.com/questions/9104327/how-do-i-pass-object-from-one-viewcontroller-to-another-viewcontroller) 질문을 게시했다. 내가 뭘 잘못하고 있는지. – jroyce

1

마지막 하나가 작동합니다

시도 [전무 자기 add_Clicked] "대상 : 자신을"하지만 대상입니다 (ID) 때문에 보낸 사람이 이론의 모든 객체가 될 수있다 .

+0

add_Clicked : 메소드에서 보낸 사람을 사용하지 않는 것이 해결책을 확인하는 것입니다. 호출에서 보낸 사람을 사용하면 null 또는 self를 전달하면 충돌이 발생할 수 있습니다. – nycynik

1

제안에 대한 또 다른 대안은 수행중인 작업에 따라 클래스에 다른 메소드를 추가하고 호출하는 콜백을 호출하는 메소드를 호출하는 것입니다.

- (void) add_Clicked:(id)sender { 
    [self goAddSomething]; 
} 


- (void) goAddSomething { 
    /* add the code here to handle add. */ 
} 

그런 다음 코드의 다른 부분에서 [self goAddSomething]을 호출 할 수 있습니다. nil을 사용할 필요가 없습니다.

관련 문제