尝试从一个 Storyboard 文件 (FifthViewController.storyboard) 中推送的按钮加载 ViewController 到单独的 xib (WebViewController.xib) 后,我的 iOS 5-6 应用程序崩溃。确切的错误消息:由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[UIViewController _loadViewFromNibNamed:bundle:]加载了“WebViewController” Nib ,但未设置 View 导出。”
当 View 导出尚未连接或 ViewController 尚未分配类时,通常会出现此错误。在 WebViewController.xib 中,所有内容都已连接,包括 View (实际上您无法断开连接)和我的 Web View 。我的 ViewController 类被正确标记为 WebViewContrller。
这是我的代码:
WebViewController.h
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) NSURL *urlToLoad;
- (id)initWithURL:(NSURL *)url;
WebViewController.m
@synthesize webView, urlToLoad;
- (void)viewDidLoad {
[super viewDidLoad];
[webView loadRequest:[NSURLRequest requestWithURL:urlToLoad]];
}
- (id)initWithURL:(NSURL *)url {
[self setUrlToLoad:url];
return self;
}
FifthViewController.m -- 这是调用 WebViewController 的按钮所在的 VC
- (IBAction)pushedArts:(id)sender {
WebViewController *wvc = [[WebViewController alloc] initWithURL:[NSURL URLWithString:@"http://www.yahoo.com"]];
[self presentModalViewController:wvc animated:YES];
}
这些图像显示了 WebViewController.xib 及其类中的连接。任何见解将不胜感激。谢谢。
最佳答案
您的 -[WebViewController initWithURL:]
方法应调用 [super initWithNibName:bundle:]
来正确初始化您的 View Controller ,包括关联正确的 Nib 等。
通常,如果您编写任何初始化程序,它必须(直接或间接)调用父类(super class)的指定初始化程序。
关于ios - 加载 ViewController 时出错 - 加载了 Nib ,但未设置 View 导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15192190/