스토리 보드를 XIB로 대체하려면 어떻게해야합니까?XIB와 스토리 보드 교체
동적으로 뷰와 컨트롤러를 만들려고하면서 새로운 스토리 보드의 장점을 모두 잃었습니다. 이제는 프로젝트에서 제거하려고 할 때 자체 컨트롤러로 새 XIB를 만들고 프로젝트 설정에서 바꾸 었습니다.
이제 응용 프로그램을 실행하려고하면 충돌이 발생하고 로그에 다음과 같은 메시지가 표시됩니다 : UIRootWindow : 여기서
2012-04-08 14:50:16.567 Bazaart[11340:15203] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x8c15c20> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key view.'
은의 코드
#import <UIKit/UIKit.h>
@interface UIRootWindow : UIViewController
@end
는 그 대응하는 구현 :
#import "UIRootWindow.h"
@implementation UIRootWindow
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)viewDidUnload {
[super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
@end
012,351,
편집 :
필립 (필자 참조)이 제안한 바와 같은 창이 있습니다. 하지만 ... 내가 한 방식대로하는 것이 최선이 아닌 것 같습니다. 내가 제대로하고 있니?
UIRootWindow *wnd = [[UIRootWindow alloc] init];
[wnd view];
[self setWindow:wnd.window];
미래의 호환성을 위해서 자신의 클래스 이름을'UI' 또는'NS'로 시작해서는 안됩니다. (SDK의 차기 버전에서는 Apple이'UIRootWindow'라는 새로운 클래스를 도입한다고 상상해보십시오). 자신 만의 접두어를 사용하면'URKRootWindow'와 같은 것을 얻을 수 있습니다. –