2012-08-27 32 views
0

当试图添加新视图时遇到了这个非常令人沮丧的问题,我有两种不同类型的视图:LargeCoverViewControllerCoverViewControllerinitWithNibName不起作用

我创建了一个LargeCoverViewController这样的:

LargeCoverViewController *tmpCover = [[LargeCoverViewController alloc] initWithNibName:@"LargeCoverViewController" bundle:nil andIssue:issue]; 

这只是工作,但是当我尝试创建一个CoverViewController,它拒绝工作

CoverViewController *tmpCover = [[CoverViewController alloc] initWithNibName:@"CoverViewController" bundle:nil andIssue:issue]; 

我想它有话用.xib文件做,当我这样做的时候它再次“起作用”

CoverViewController *tmpCover = [[CoverViewController alloc] initWithNibName:@"LargeCoverViewController" bundle:nil andIssue:issue]; 

在Interface Builder中,类设置正确,我的视图正确链接。 (它基本上只是LargeCoverViewController的一个副本),我还错过了什么吗? 它变得非常令人沮丧......

编辑: 我的应用程序不会崩溃,如果我的nibname错误,应用程序应该崩溃,这不是这里的情况。

+0

拒绝工作?我敢打赌,这不是你收到的错误信息?问题是什么? – Rog

+0

@Rog,Jup,它拒绝工作,没有任何事情发生,我的观点仍然是空的。 viewDidLoad被调用,只是没有显示。 –

回答

3

尝试创建新的独立XIB文件,而不是复制整个XIB文件,然后将UI插口和视图从其他XIB复制到此新创建的XIB文件。

有时,Xcode与复制粘贴混淆。我知道这是不正确的解决方案,但有时它的工作原理。 :)

+0

好吧,似乎工作,虽然我从来没有复制XIB文件(只是创建自己的),现在做同样的事情,它的工作原理... –

+0

我同意BornCoder,Xcode有时会与复制粘贴混淆。我实际上已经在粘贴时没有复制过这些插口,并花了很多时间试图弄清楚什么是坏的。经常检查你的网点。 – BigSauce

0

复制ViewController时,文件所有者的自定义类保持不变,因此将其更改为新的ViewController,并在更改后再次绑定您的视图。

+0

我没有复制它(它看起来是一样的),我检查了文件所有者的类一百万次,它的设置是正确的。 –

0

您的应用程序在该行上崩溃了吗?检查控制台的日志。您可能收到错误消息或崩溃日志。

如果您从任何其他XIB复制了XIB资源,然后检查可能无法提供给此新类的链接网点。

我希望这会帮助你,并能够解决问题。

+0

我的应用程序不会崩溃,所有函数都正确调用,只是当我使用'CoverViewController'作为一个nib名称时,没有任何显示。 –

+0

如果该类是** UIViewController **,那么检查** - (void)ViewDidLoad **是否被调用? – BornCoder

+0

'viewDidLoad'被称为 –