2

我的 iOS 5-6 应用程序在尝试从一个故事板文件 (FifthViewController.storyboard) 中推送的按钮加载 ViewController 到单独的 xib (WebViewController.xib) 后崩溃。确切的错误信息:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "WebViewController" nib but the view outlet was not set.'

此错误通常在未连接视图出口或未为 ViewControllers 分配类时出现。在 WebViewController.xib 中,所有东西都是连接的,包括视图(实际上你不能断开它)和我的 web 视图。我的 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 - 这是一个按钮所在的 VC,它调用 WebViewController

- (IBAction)pushedArts:(id)sender {
WebViewController *wvc = [[WebViewController alloc] initWithURL:[NSURL URLWithString:@"http://www.yahoo.com"]];
[self presentModalViewController:wvc animated:YES];
}

图 1图 2 这些图像显示了 WebViewController.xib 及其类中的连接。任何见解将不胜感激。谢谢你。

4

2 回答 2

2

您的-[WebViewController initWithURL:]方法应该调用[super initWithNibName:bundle:]以正确初始化您的视图控制器,包括关联正确的 nib 等。

通常,如果您编写任何初始化程序,它必须(直接或间接)调用超类的指定初始化程序。

于 2013-03-04T00:54:51.543 回答
0

我认为您需要检查您的 nib 文件,因为我很清楚系统无法找到您的 nib 文件,或者未连接视图插座。打开您的 nib 文件,转到最后一个选项卡,然后连接您的视图插座,就像您应该连接其他组件的正常方式一样

于 2013-03-03T23:29:54.267 回答