내가 그것을 작동하지 않았다 때awakeFromNib에서보기에 액세스 하시겠습니까?
[imageView setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:1.0]];
로 awakeFromNib에있는 UIImageView 배경 색상 (아래 참조)을 설정하기 위해 시도하고있다, 나는 깨달았다는 것을 아마보기가 아직로드되지 않았으며 나는 색상 변화를 이동해야하기 때문에 viewDidLoad.
나는이 권리가 있음을 확인할 수 있습니까?
게리
EDIT_002 :
난 그냥 깨끗한 처음부터이를 확인하기 위해 새로운 프로젝트를 시작했다. 나는 항상 내가하는 것처럼보기를 설정했다. 결과는 컨트롤이 실제로 awakeFromNib에서 (null)로 설정된다는 것입니다. 여기에 내가 무엇을 가지고 :
CODE :
@interface iPhone_TEST_AwakeFromNibViewController : UIViewController {
UILabel *myLabel;
UIImageView *myView;
}
@property(nonatomic, retain)IBOutlet UILabel *myLabel;
@property(nonatomic, retain)IBOutlet UIImageView *myView;
@end
.
@synthesize myLabel;
@synthesize myView;
-(void)awakeFromNib {
NSLog(@"awakeFromNib ...");
NSLog(@"myLabel: %@", [myLabel class]);
NSLog(@"myView : %@", [myView class]);
//[myLabel setText:@"AWAKE"];
[super awakeFromNib];
}
-(void)viewDidLoad {
NSLog(@"viewDidLoad ...");
NSLog(@"myLabel: %@", [myLabel class]);
NSLog(@"myView : %@", [myView class]);
//[myLabel setText:@"VIEW"];
[super viewDidLoad];
}
출력 :
awakeFromNib ...
myLabel: (null)
myView : (null)
viewDidLoad ...
myLabel: UILabel
myLabel: UIImageView
내가이 일을해야하는지 알고 관심을 가질만한 보이는 워드 프로세서에서 그것을해야하지만, 나는 보통 내가 할 수없는 아주 일을 설정하는 방법을 제공 같은 이 경우 왜 그렇지 않은지 이해하십시오.
Zoul, 고맙습니다. 매우 흥미 롭습니다. viewDidLoad를 사용하여 처음부터 호출을로드하도록 강제하는 것이 더 좋을 것 같습니다.나는 awakeFromNib을 사용하는 것이 아이폰에 좋은 아이디어가 아닐지도 모른다는 것을 읽었지만, 그것에 대한 의견이 혼합되어있는 것으로 보인다. 다시 감사드립니다 ... – fuzzygoat
보기에 대한 액세스 권한이 없으면 awakeFromNib에서 performSelector : withObject : delay 호출을 수행하십시오. 해킹이지만 효과적입니다. – phatmann
처음에는이 질문과 답변을 발견하기가 어려웠습니다. 이전에 발견하면 문제가 많아졌습니다. 2013 년에도 문제가 계속 발생하며 그 행위가 문서와 모순된다고 생각합니다. http://stackoverflow.com/questions/17400547/awakefromnib-outlets-and-storyboards-is-the-documentation-wrong –