Iphone 无法加载名为“的nib”;TwitterDrilldownView“;
当我将新的ViewController推到导航堆栈上时,会出现上述错误。这是推码Iphone 无法加载名为“的nib”;TwitterDrilldownView“;,iphone,objective-c,xcode,Iphone,Objective C,Xcode,当我将新的ViewController推到导航堆栈上时,会出现上述错误。这是推码 [self.navigationController pushViewController:[[TwitterDrilldownViewController alloc]initWithTwitterAnnotation:temp]autorelease]动画:是]; 基本上,我只是将一个新分配和初始化的视图推到堆栈上。ViewController的init方法是 -[UIViewController _loa
[self.navigationController pushViewController:[[TwitterDrilldownViewController alloc]initWithTwitterAnnotation:temp]autorelease]动画:是];
基本上,我只是将一个新分配和初始化的视图推到堆栈上。ViewController的init方法是
-[UIViewController _loadViewFromNibNamed:bundle:] was unable to load a nib named "TwitterDrilldownView"
正如您所看到的,我没有使用任何initializewithnib方法,并且在我的项目中没有名为TwitterDrilldownView的nib文件
在创建名为TwitterDrillDownView的TwitterDrillDownView控制器之前,我确实有一个nib文件,但我使用它来测试布局,而且,我从来没有使用过它。当我创建TwitterDrillDownView控制器时,TwitterDrillDownView.nib出现在项目中,在这个阶段之后,我删除了该nib
我能想到的导致这个问题的唯一原因是Xcode以某种方式创建了对nib文件的依赖,因为nib文件和视图控制器的名称相同(TwitterDrilldownView.nib,TwitterDrilldownViewController.m),好像它试图提供帮助,但最终却把我的项目搞砸了
我曾尝试删除并重新创建视图控制器,希望任何引用都会被销毁,并删除了项目中对nib文件的任何引用,但没有效果
是否有人对此问题有任何经验或知道可能的解决方案?UIViewController应使用
initWithNibName:bundle:
方法初始化。在其说明中指出:
这是的指定初始值设定项
这个班
如果指定NIB名称为nil
参数,而不重写
自定义视图中的loadView方法
子类,默认视图控制器
行为是查找nib文件
谁的名字(不带.nib)
扩展名)与您的
视图控制器类。如果发现
第一,类名成为值
nibName属性的
在相应的nib文件中
与此视图控制器关联
因此,如果不从nib文件加载视图控制器,请确保覆盖loadView
方法,并在其中设置控制器的view
属性。希望这会有所帮助。从项目中删除一个XIB文件后,我也遇到了这种情况。然而,我做了一些胡闹,并能够解决问题 关键的一点是,Xcode似乎在您在其中创建XIB和outlets/actions时将某种引用保留在某个地方,手动删除XIB文件只会孤立这些引用。使用interface builder(UB)和XIB逐个删除这些连接似乎可以正确地取消引用它们 解决方案非常清楚:
狩猎快乐!评论不错,谢谢你提供的信息(我不知道)但在这种情况下,它不适用,因为我有其他视图控制器,它们都是以完全相同的方式初始化的,都不需要重写loadView。一个区别是,我没有任何其他视图的nib文件,所以我仍然确信它一定是Xcode中的某个错误。我通过重命名我的TwitterDrilldownViewCont解决了这个问题我只能假设Xcode确实对旧的nib文件有一些不正确的引用,我仍然很好奇是否还有其他人有这个问题。再次感谢。嗯,也许你应该取消我的答案被接受的标记-可能有人会指出这个问题的真正解决方案吗?我认为你的答案对这一点很好,并且会我会帮助其他有这个问题的人。我的具体问题似乎很模糊,所以我就不说了。删除笔尖后出现完全相同的问题-你解决过这个问题吗?我的解决方案是重命名ViewController,不幸的是我唯一能做的事。如果仍然是b,我想苹果的一个记录错误是个好主意roken 2年多后:):)我还找到了另一个解决方案,我将在下面说明。。太好了,我很高兴将此转移到公认的答案,因为您已经指定了调试和修复问题的更有用的步骤。
- (id)initWithTwitterAnnotation:(TwitterInfo *)aPOI {
if(self = [super init]) {
poi = aPOI;
}
return self;
}