我知道有多个问题要求同样的事情,但他们的解决方案都不适合我。
我创建了一个自定义的viewController类(Home),我分别创建了一个.xib。 (实际上,我将有2个笔尖 - 一个用于加载ipad版本,另一个用于iphone)。
当我尝试实例化一个home类的实例时,我得到了我在问题中提到的错误。
在xib文件中,我所做的就是将一个viewcontroller对象从库中拖到屏幕上,它会自动在文件所有者和第一个响应者下面添加一个viewcontroller图标。然后我进入viewController对象的检查器,并将类从viewController更改为Home。
我从解决方案中看到的下一步是连接检查器的视图插座。我不完全确定我应该把它连接到什么地方。我发现的解决方案是将它连接到视图图标,但我再次看到的只是文件所有者,第一响应者和vc对象。它连接到没有一个
以下是我在app delegate中的内容
- (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;
}
答案 0 :(得分:2)
我建议你使用Xcode的File-> New-> New File-> Cocoa Touch-> UIViewController子类 - >创建Nib,用XIB作为用户界面(做两次,一次用针对iPad进行了检查)。我发现这是创建和连接XIB最可靠的方法。
即使您想为同一个控制器使用两个XIB,也可以使用任何临时名称(比如tempvc)创建第二个VC子类。现在,将tempvc.xib重命名为HomeIpad.xib。右键单击HomeIpad.xib并选择Open As->源代码。在源代码中,搜索tempvc并将其替换为所有实例的控制器名称。一切都应该是好的。
答案 1 :(得分:1)
问题是对于文件的所有者,我没有将类设置为Home
答案 2 :(得分:0)
您不需要拖动视图控制器。只需拖动UIView,然后将File的所有者View连接到此UIView。