2009-03-28 6 views
0

아이폰에 대한 세 가지 뷰가 있습니다. 성공적으로 다른보기 사이에서 전환하지만 두 번째보기의 ViewDidLoad 메서드에서 첫 번째보기의 변수에 액세스 할 수 있지만 그것을 얻을 수 없습니다. 그래서 plz 도와주세요.다른 UIView에서 UIView의 멤버 변수에 액세스

답변

1

두 번째보기의 첫 번째보기에 대한 참조가 필요합니다. 따라서 두 번째 인스턴스를 인스턴스화 할 때 첫 번째 뷰를 수신하고 참조를 저장하는 메시지를 구현하십시오.

ViewController 패턴을 사용하여 하나의보기에서 다른보기로 흐르는 데이터 및 비헤이비어를 조정하는 것이 더 효과적입니다. UIView의 두 서브 클래스를 갖는

+0

감사에서 ViewOne의하는 .m

ViewOne *view1 = [[ViewOne alloc] init]; view1.someVar = TRUE; 

에 넣어 가지고 있지만 난 여전히 내가 캔트 모든 일을했다. –

+0

몇 가지 코드를 제공 할 수 있습니까? 나는 당신이 시도하고있는 것을 성취하는 방법을 알고 있지만 당신이 복용하고있는 것과 같은 길인지는 모른다. –

+0

확인 내 문제 코드를 게시했습니다 –

1

은과 같이 선언 :

@interface ViewOne : UIView { 
    NSString *someVar; 
} 

@property (nonatomic, copy) NSString *someVar; 

@end 

@interface ViewTwo : UIView { 
    NSString *referenceToSomeVar; 
} 

@property (nonatomic, retain) NSString *referenceToSomeVar; 

@end 

당신은

ViewOne *view1 = [[ViewOne alloc] init]; 
view1.someVar = @"This is the original variable"; 

ViewOne *view2 = [[ViewOne alloc] init]; 
view2.referenceToSomeVar = view1.someVar; 
0

내가 뭔가를 추가 할 첫 번째보기에서 "의 somevar"변수를 다음 참조를 할 수 위의 코드. ViewOne의 변수를 ViewTwo의 두 번째 변수에 할당한다고 가정 해 보겠습니다.

@interface ViewOne : UIView { 
BOO someVar; 
} 

@property (readwrite) someVar; 

@end 

@interface ViewTwo : UIView { 
BOO referenceToSomeVar; 
} 

@property (readwrite) BOO referenceToSomeVar; 

@end 

그래서 당신은 재생을위한 SecondView하는 .m

referenceToSomeVar = view1.someVar; 
관련 문제