이 문제는 간단합니다. xib에서 다른보기 컨트롤러를로드하는보기 컨트롤러가 있습니다.xView를 통해 다른보기 컨트롤러를로드하는 UIViewController가 기본보기에 액세스하려고하면 충돌이 발생합니다.
'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "Embedded" nib but the view outlet was not set.'
*** First throw call stack:
(
0 CoreFoundation 0x000000010689134b __exceptionPreprocess + 171
는이 모양을 수행하는 코드 : 그 차 뷰 컨트롤러의 뷰를 참조하려는 시도와 충돌
- (void)viewDidLoad {
[super viewDidLoad];
// loads controller just fine.
EbeddedViewController *embedded = [[EbeddedViewController alloc] initWithNibName:@"Embedded" bundle:nil];
// KABOOM on line below
UIView *embeddedViewIs = embedded.view;
}
EmbeddedViewController가있는 UIViewController를 확장하고 일반/평범한입니다 ..
#import "EbeddedViewController.h"
@interface EbeddedViewController()
@property (nonatomic, strong) IBOutlet UILabel *embeddedLabel;
@end
@implementation EbeddedViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
이 매우 지루하고 평범 :
그리고 이것이 기본보기입니다. IBOutlet을 추가하려고 시도했지만 none-the-less가 충돌합니다.
XIB보기 컨트롤러가 제대로 사용자 정의 클래스로 설정이 충돌 왜이 작은 응용 프로그램을 시도하고자하는 경우 나 .. 단서가 없다
하십시오 여기에서 다운로드 :
Link to a tiny two view controller app where this crash is demonstrated
viewDidAppear 메서드에서 뷰에 액세스하려고합니다. 콘센트는 viewDidLoad 메서드에서 아직 설정되지 않았습니다. –
감사합니다. 나는 핵심 코드 조각을 넣으려고 했었습니다 - xb의로드가 viewdid에 나타나고 크래시가 똑같은 방식으로 일어났습니다 - 똑같은 일입니다. 그런 다음 나는 그것들을 나누기로 결정했습니다 - xd의로드를 viewdidload에 두었고 viewdidappear에서 뷰에 액세스했습니다. 그리고 똑같은 방식으로 충돌했습니다 ... – geekyaleks