2010-06-24 2 views
0

어떻게해야하고 어떻게해야하는지 분명히하기 위해 적어도 조금이라도 성공하면 좋겠다. 나는 틀렸다는 것을 알고 있으므로 전문가의 의견이 필요하다. 내가 원하는 두 가지 viewcontroller nibs 함께 다른 ViewController 첫 번째 클래스에있는 함수를 호출하는 것입니다, 문제는 다른 viewcontroller이 함수를 호출하는 관리하지만 내가 볼 수있는 유일한 것은 출력되는 NSlog 있습니다. FirstViewController.m다른 뷰 콘트롤러의 첫 번째 뷰에서 함수 호출하기

-(void)drawingFunction:(NSString*)inputText{ 
NSLog("Feature was launched"); 
/* showing stuff in FirstView.xib */ 
} 

SecondViewController.m

: 콘솔

예 (내가 그 위치에 넣어 함수가 호출 될 것을 알고)

-(void)turnOnFunction:(id)sender{ 
FirstViewController *stuff= [[PrviViewController alloc] init]; 
[stuff drawingFunction:@"ShowAll"]; 
} 

기본적으로 PrviViewController.m에서 해당 함수를 호출 할 때 외부 참조없이 의미합니다.

[self drawingFunction:@"ShowAll"]; 

모든 것이 잘 표시,하지만 난 SecondViewController.m 내가 볼 모두에서이 함수를 호출 할 때

정말 모르는 콘솔에 불과 "를 시작했다 기능"이다 무엇을해야합니까 ...

답변

0

내가 맞으면 FirstViewController가 뷰 컨트롤러 계층 구조 (탐색 컨트롤러 또는 제시된 모달 중 하나) 위에 있습니다. 따라서 SecondViewController의 인스턴스를 생성하고 SecondViewController에 해당하는 뷰에서 사용자 인터페이스를 변경해야하는 함수를 호출하면 아무 일도 일어나지 않습니다.

예를 들어, SecondViewController와 해당 뷰를 presentModalViewController:animated:과 함께 표시해야합니다. 그런 다음 SecondViewController보기가 표시되고 해당보기에서 모든 변경을 수행 할 수 있습니다. 또한 drawingFunction : 메서드를 호출하여 예상대로 작동합니다.

건배, 안드레아스

0

당신은 클래스와 인스턴스를 혼동하고 있습니다. 클래스에 메시지 (호출 함수)를 보내지 않으면 클래스에 메시지를 보냅니다.

이 경우 FirstViewController 인스턴스가 두 개 완전히 분리되어 있습니다. 첫 번째는 펜촉을 넣음으로써 만들어지며 두 번째 펜촉은 -[SecondController turnOnFunction:]에 만들어집니다. drawingFunction: 메시지를 첫 번째 인스턴스로 보내려는 경우 두 번째 인스턴스로 메시지가 전송됩니다.

FirstViewController의 nib 인스턴스를 SecondController 인스턴스에 연결해야합니다. 인터페이스 빌더에서 콘센트를 사용하거나 SecondController 디스플레이를 만들 때이 인터페이스를 지정할 수 있습니다.

관련 문제