2012-07-07 2 views
1

property1이라는 합성 속성 인 vc1이라는 뷰 컨트롤러가 있고 다른 뷰 컨트롤러 (vc2)에서이 뷰 컨트롤러에 액세스하여 vc2에서 변경하려고한다고 가정 해 봅시다.ViewController의 인스턴스 메서드에 다른 뷰 컨트롤러에서 접근하기

이제는 @syntisize에 의해 생성 된 메소드가 인스턴스 메소드이기 때문에 어떻게 다른 뷰 컨트롤러에서 볼 수 있습니까 (뷰 컨트롤러에는 응용 프로그램에 인스턴스가 있습니까? 그렇다면 인스턴스는 무엇입니까?)

그냥 내가 지금 정말 뷰 컨트롤러의 인스턴스를 결코 스토리 보드를 사용하고 명확하게하는 ...

+0

vc2에서 vc1에 대한 참조가 있습니까? – Peres

+0

vc1의 segue를 사용하여 vc2가로드 되었습니까? –

답변

0

VC1.m :

-(void) yourMethod { 
    ... 
} 

VC2.m

YOURViewController * vc2 = [[YOURViewController alloc]init]; 
[vc yourMethod]; 
[vc release]; 

YOURViewController을 다른보기 .m 파일 에 가져와야합니다. 제대로 작동해야합니다.

또는 당신은 문제가 있다면, 여기에이 튜토리얼 시도 :이 도움이 :) 당신이 당신이 설명하는 방법을 할 수 있지만

+0

-1 제안 : "또는 다른 뷰 컨트롤러에서 액세스 할 수 있도록 앱 델리게이트에 넣을 수 있습니다." – Peres

+0

오, 죄송합니다. 편집하려고합니다. 나는 객체/배열을 생각하고 있었다. 죄송합니다. – Bazinga

0

당신은 VC1에 대한 뷰 (나는 다른 뷰를 코딩 할 때이 중요하기 때문에이 작업을 완료했다고 가정) 나머지 클래스 VC1 등을 사용하도록 viewcontrollers와 스토리 보드 뷰를 연결해야합니다

당신이 그렇게 viewDidLoad 방법을 말할 수 속성을 호출하는 지금,이 같은 뷰 컨트롤러를 선언 어디 그럼 당신이 할 필요가 :

- (void) viewDidLoad {
vc1 *viewController;
// Now you change the variable I'll presume its a UILabel so I'll change its text
[viewController.property1 setText:@"I changed a different views UILabel"];
}

날이 작동하는지 알려주십시오 ... 그것은 나를 위해 일 전에 일해야한다

관련 문제