ios - 加载 ViewController 时出错 - 加载了 Nib ,但未设置 View 导出

标签 ios objective-c uiviewcontroller

尝试从一个 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];
}

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

最佳答案

您的 -[WebViewController initWithURL:] 方法应调用 [super initWithNibName:bundle:] 来正确初始化您的 View Controller ,包括关联正确的 Nib 等。

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

关于ios - 加载 ViewController 时出错 - 加载了 Nib ,但未设置 View 导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15192190/

相关文章:

ios - 以编程方式添加 subview 后自动调整单元格大小

ios - Flutter check if app was in memory when launched (How to check if splash screen is shown in iOS)

ios - 通过按钮以编程方式将 UITableViewController 替换为 UIViewController,并使用里面的 tableView

ios - 维护 View Controller 之间的信息

ios - 将 View Controller 添加到另一个时的自定义转换

ios - 自定义类 "Cannot find interface declaration"中无法识别 Objective-C 类别方法

iphone - 将 char 转换为 int 的奇怪错误( Objective-C )

iphone - UILocalNotification - 即使应用程序通过主屏幕启动也响应通知

objective-c - iOS使我的应用程序不断在后台运行

ios - 更改嵌套在 NSMutableDictionary 和 NSMutableArray 中的 NSNumber