2013-05-16 2 views
0

FatEditViewController에는 사용자 정의 UIView가 있습니다.Storyboard에서 사용자 정의 UIView를 얻는 방법

다른 UIViewController에에서 FatEditViewController.h

#import <UIKit/UIKit.h> 

@interface FatEditViewController 
@property (weak, nonatomic) IBOutlet UIView *myview; 

@end 

, 나는 MYVIEW 개체를 얻을합니다. 나는 이렇게 좋아한다 :

FatEditViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"FatEdit"]; 
UIView *view = [vc myview]; 
NSLog(@"%@, %@", vc,view); 

그리고 myview는 null이다. myview를받는 방법?

답변

0

여기서 문제는 FatEditViewController의 viewDidLoad 메서드가 호출 될 때 myview가 인스턴스화된다는 것입니다. 뷰 컨트롤러가 화면에 표시 될 때만 호출되는 것은 물론입니다. 필요한 것을 얻기위한 한 가지 방법은 프로그래밍 방식으로 myView를 구축하는 것입니다 (IBOutlet이 아닐 것입니다). 게터에서 게으른 initialising으로 가능합니다. 프로그래밍 방식으로 viewDidLoad 메서드의 FatEditViewController에 뷰를 추가해야합니다.

-(UIView *)myview 
{ 
    if(!_myview){ 
     _myview = [[UIView alloc] initWithFrame:whateverFrameYouNeed]; 
     //build the view 
    } 
    return _myview; 
} 

속성도 강해야합니다.

관련 문제