2012-07-17 2 views
1

메서드를 사용하여 xib 파일을로드 할 때 매개 변수를 전달하는 방법은 무엇입니까? 클래스를 인스턴스화 할 때 위해메소드 [NSBundle loadNibNamed : xibName owner : [NSApplication sharedApplication]]을 사용하여 loadNib 매개 변수를 전달하는 방법은 무엇입니까?

[NSBundle loadNibNamed:xibName owner:[NSApplication sharedApplication]]; 
+0

무엇에 매개 변수를 전달 하시겠습니까? 일반적으로 XIB에서 파일 소유자로 식별 된 개체 클래스에는 XIB에도있는 다른 개체를 기반으로 속성을 설정할 수있는 콘센트가 있습니다. 직접 연결에 의해 처리되지 않는 설정은'awakeFromNib' 메쏘드 (또는 창 컨트롤러를위한'windowDidLoad'와 같이 로딩이 완료된 후에 호출되는 다른 메쏘드)에서 수동으로 코딩 할 수 있습니다. 그래서 : XIB가 클래스를 인스턴스화 한 다음'awakeFromNib'를 사용하여 인스턴스를 커스터마이징하십시오. –

+0

매개 변수를 awakeFromNib 메서드에 전달합니다. – cuichang

답변

3

이 래퍼로 매개 변수를 loadNibNamed:owner: 방법에 래퍼를 추가하고 전달 매개 변수를 전달합니다. 여기

(ClassName *) GetInstanceWithParameter1:(ParameterType *)param1 
          andParameter2:(ParameterType *)param2 { 
    ClassName *instance = [[ClassName alloc] initWithNibNamed:nibName    
                 bundle:nibBundle]; 
    instance -> P1 = param1; 
    instance -> P2 = param2; 
    return instance; 
} 

P1 및 P2는 PARAM1 및 PARAM2에 대응하는 클래스 레벨 변수이다 : 여기

이위한 코드이다. 이제 코드의 어느 위치에서나 사용할 수 있습니다.

0

이것은 나를 위해 일한 것의 예입니다.

UIView 인 Xib (Nib) 파일 (MyNibView.xib)이 있다고 가정 해보십시오.

UIView에는 헤더와 기본 파일이있는 NibView라는 클래스가 있습니다. NibView.h 및 NibView.h. > 당신의 펜촉에

클릭 신원 경위로 이동합니다>> 사용자 정의 클래스에서 클래스를 여러분의 클래스를 입력 :

당신이 펜촉에 클래스를 연결하는 방법을 모르는 경우

.

1) NibView.h에서 (전달하려는 객체가) 인스턴스화되었는지 확인하십시오. 이 예제에서는 name이라는 NSString을 사용합니다.

@property NSString *name; 

2) NibView.m에서 함수 (예를 들어, 인 helloWorld)를 만들고 그 함수에서 당신이 객체로 건네과 함께하고 싶은대로 할.

- (void) helloWorld { 
    NSLog(@"hello %@",self.name); 
} 

3) 그 방법을 쓰기도합니다 (예를 들어,의 ViewController 수)로부터 데이터를 전달하는 클래스에서

@property NSString *name; 

- (void) helloWorld; 

4), 뷰 클래스를 가져 NibView.h입니다

NSArray *nib =[[NSBundle mainBundle]loadNibNamed:@"MyNibView" owner:self options:nil]; 
// At this point - (void)awakeFromNib is called 
NibView *view = [nib objectAtIndex:0]; 
view.name = @"Bob"; 
// Now lets call the method "helloWorld" 
[view helloWorld]; 
// This line sets the MyNibView as the UIView of a ViewController (only relevant for this example). 
self.view = view; 
,369 :
#import "NibView.h" 

그리고이 코드를 작성

희망이 도움이 다른 사람들을 도왔습니다

관련 문제