【问题标题】:In xCode, I'm getting the error "Loaded the nib but the view outlet was not set"?在 xCode 中,我收到错误“已加载 nib 但未设置视图插座”?
【发布时间】:2011-08-18 06:11:15
【问题描述】:

我知道有多个问题都在问同一个问题,但他们的解决方案都不适合我。

我做了一个自定义的viewController类(Home),我单独做了一个.xib。 (实际上,我将有 2 个笔尖——一个用于加载 ipad 版本,另一个用于加载 iphone)。

当我尝试实例化 home 类的实例时,我收到了问题中提到的错误。

在 xib 文件中,我所做的只是将一个 viewcontroller 对象从库中拖到屏幕上,它会自动在文件所有者和第一响应者下方添加一个 viewcontroller 图标。然后我进入 viewController 对象的检查器并将类从 viewController 更改为 Home。

我从解决方案中了解到的下一步是连接检查器的视图插座。我不完全确定我应该将它连接到什么。我发现的解决方案是将其连接到视图图标,但我再次看到的是文件所有者、第一响应者和 vc 对象。它与任何一个都没有连接

这是我在应用程序委托中放入的内容

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

 Home *homePage = [[Home alloc] initWithNibName:@"HomeIpad" bundle:nil]; 

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:homePage];
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}

【问题讨论】:

  • 如何加载笔尖?
  • 在didFinishLaunching的应用程序委托中,我做了initWithNibName:@"HomeIpad"。然后我将它添加到导航控制器中,我也在应用程序委托中实例化了它
  • 请在您的问题中添加一些代码。
  • 好的,我添加了我在应用程序委托中放入的内容

标签: objective-c interface-builder nib outlet


【解决方案1】:

我建议您使用 Xcode 的 File->New->New File->Cocoa Touch->UIViewController 子类->使用 XIB 来创建 Nib 作为用户界面(这样做两次,一次使用 Targeted for iPad 选中)。我发现这是创建和连接 XIB 最可靠的方法。

即使您想为同一个控制器创建两个 XIB,也可以使用任何临时名称(例如 tempvc)创建第二个 VC 子类。现在,将 tempvc.xib 重命名为 HomeIpad.xib。右键单击 HomeIpad.xib 并选择 Open As->Source code。在源代码中,搜索 tempvc 并将其替换为所有出现的控制器的名称。现在一切都应该好了。

【讨论】:

    【解决方案2】:

    问题是对于文件的所有者,我没有将类设置为 Home

    【讨论】:

      【解决方案3】:

      您不需要拖动视图控制器。只需拖动 UIView 并将文件的所有者 View 连接到此 UIView。

      【讨论】:

        猜你喜欢
        • 2011-12-13
        • 2013-06-23
        • 2012-07-23
        • 1970-01-01
        • 2020-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-10
        相关资源
        最近更新 更多