2012-01-09 20 views
1

我有一个项目,我一直在努力。这是一个iPhone专用项目,但最近发现我也需要将它提供给iPad。理论上,我应该可以在iPhone/iPad代码之间切换一些if语句,但我遇到了一个小问题。在我最初的看法,我得到了臭名昭著的错误:在iPad上运行应用程序而不是iPhone在xcode 4中时出现错误

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x8a2dcf0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key loginButton.' 

loginButton指向一个UIButton,在我Login_iPad.xib一切都正确连接。

我敢肯定我错过了一些小东西,但任何帮助将非常感激。

谢谢!

下面是我的一些代码的AppDelegate - didFinishLaunchingWithOption:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    UIViewController *rootView = [[Login alloc] initWithNibName:@"Login" bundle:nil]; 
    self.navController = [[UINavigationController alloc] initWithRootViewController:rootView]; 
} else { 
    UIViewController *rootView = [[Login alloc] initWithNibName:@"Login_iPad" bundle:nil]; 
    self.navController = [[UINavigationController alloc] initWithRootViewController:rootView]; 
} 

更新:如果我删除所有的网点(包括视图出口),我,当然,出现此错误:

loaded the "Login_iPad" nib but the view outlet was not set 

但是,如果我添加甚至只是出口的观点,我得到这个:

this class is not key value coding-compliant for the key view 

对我来说没有意义。我将XIB的类设置为与iPhone XIB相同的类。但是,我知道我忽略了一些东西。

作为iPad应用程序运行时,我似乎无法链接任何东西。甚至没有观点......或者它抛出了那个错误。

+0

听起来像是在你的iPad笔尖的出口无法正确链接... – diatrevolo 2012-01-09 17:31:53

+0

有一些问题在你的xib中,如果在那里有任何警告,你检查了所有的属性吗? – rishi 2012-01-09 17:38:00

回答

3

好吧......不知道为什么,这个固定我的问题。但是,我在项目摘要中删除了iphone和ipad的“主界面”值。它运行得很好。很奇怪。

我不知道本作有差别,但我也改变了这个在我的appdelegate:

UIViewController *rootView; 
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { 
    rootView = [[Login alloc] initWithNibName:@"Login_iPad" bundle:nil]; 
} else { 
    rootView = [[Login alloc] initWithNibName:@"Login" bundle:nil]; 
} 
self.navController = [[UINavigationController alloc] initWithRootViewController:rootView]; 
+0

花费太多时间试图弄清楚这一点。谢谢 – 2013-03-29 16:16:49

+0

它正在改变主界面为主窗口,为我工作。 – tentmaking 2013-04-17 03:06:17

+0

我可以吻你。我有完全相同的问题OVER AND OVER,花了几个小时通过我的代码来清除项目中的“主界面”,它工作正常。我在App Delegate中有类似的代码,为了记录,没有改变它,它仍然解决了这个问题。我勒个去... – Cyprus106 2014-04-29 15:02:31

0

确保您已检查目标/摘要/设备并将其设置为通用。

enter image description here

+0

我已经完成了。谢谢你。我已经删除并重新添加了xib文件中的所有连接。它附属于正确的课程。非常令人沮丧......我确信这很简单,我忽略了。 – TheTC 2012-01-09 19:03:49

+0

确保xib中的拼写完全相同,有时一个小错字(例如 - 而不是_)会导致难以言喻的悲伤。我们知道问题出在“loginButton”上,因此请检查与此有关的所有内容。连接断开也会导致此错误。在代码中建立并删除连接,但仍在xib中连接。 – 2012-01-09 19:09:56

+0

我可以对两个xib文件使用相同的.h和.m文件...正确吗? – TheTC 2012-01-09 19:21:36

相关问题