2014-03-05 4 views
1

ViewController, 즉 뷰 1을 프로그래밍 방식으로 하위 뷰를로드해야하는 VC1이라고합니다.xib에서 뷰를로드하는 방법

파일 소유자가 View1 인 View1.xib이라는 xib 파일이 있습니다.

누구나 View1을로드하는 방법을 말해 줄 수 있습니까?

나는 다음과 같은 방법을 시도

: VC1에서

, 나는 그러나

View1 view1 = [[View1 alloc] init]; 
[[NSBundle mainBundle] loadNibNamed:@"View1" owner:view1 options:nil]; 
[self.view addSubview:view1]; 

전화, 그것은 뷰 1 객체와 NSBundle 통화에서로드 된 객체가 동일 하나없는 것으로 나타났다.


업데이트 다음 View1.xib 파일에서

, 나는 몇 가지 함께 IBOutlet은 뷰 1 클래스에 경계, 그래서 나는 VC1에 파일의 소유자를 변경할 수 없습니다. 여기

+0

'UINib' 클래스가 방금 개발되었습니다. – holex

답변

2

xib에 정의 된 레이아웃을 가진 UIView 하위 클래스를로드하는 경우 File 소유자를 설정할 필요가 없습니다. 대신 상위 레벨 객체의 클래스를 하위 클래스 (View1)의 클래스로 변경해야합니다.

View1 *view1 = [[NSBundle mainBundle] loadNibNamed:@"View1" owner:nil options:nil].firstObject; 
+0

매우 멋진 한 - 라이너! 그 firstObject 프라퍼티에 대해 나는 몰랐다. – hgwhittle

1

그것을 수행하는 방법입니다 :

NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"View1" owner:self options:nil]; 
View1 *view1 = [xib objectAtIndex:0]; 
[self addSubview:view1]; 

참고 :

인터페이스 빌더에서 View1.xib보기를 구축, View1 기본적 File's Owner 및 설정 뷰 클래스를 둡니다.

+0

VC1 클래스에서 이것을 호출하는 것이 좋습니다. 그러나 View1.xib의 파일 소유자는 VC1이 아니지만 View1 – HanXu

+0

어떻게 수행하는지 설명하는 답변이 업데이트되었습니다. – RaffAl

+0

내 view1.xib에서 일부 IBOutlet 클래스 View1 바운딩 있습니다. 파일 소유자를 기본값으로 설정하면 오류가 발생합니다.이 클래스는 키 XXX에 대한 코드 호환 키 값이 아닙니다 ... – HanXu

관련 문제