Xcode 4:在不同文件的方法中加载 Nib
-
13-12-2019 - |
题
很抱歉,如果这个问题很基本,但过去两天我一直被这个错误困扰,而且我一直无法克服它。我正在使用 Xcode 4.3.2
我正在尝试在名为 BController.m 的文件中名为“- (void) process”的方法中加载名为 AController.xib 的笔尖
需要明确的是,我将 ./A/AController.xib (这是一个 UIView)、./A/AController.m、./A/AController.h 复制到目录 ./B
我只是提到这一点,因为我不确定这对我的问题是否重要。
目前,我的流程作为流程工作(这可能是我的问题):
- 视图加载有“购买”按钮
- 用户单击“购买”按钮,该按钮有一个名为“buyNow”的 IBOutlet
- “buyNow”调用“buy”,然后“buy”调用“process”
然后,进程尝试使用以下命令加载笔尖(选项 1):
AController *废话;for(bundle中的ID对象){if([[[对象iskindofClass:[acontroller class]])blah =(acontroller *)对象;} servert(blah!= nil &&“ blah不能为nil”);[self.view addSubView:等等];
我在这里得到的错误是“线程 1:信号sigabrt“在main中。我也尝试过(选项2),
AController *myView = [[AController alloc] initWithFrame:self.view.bounds];
[self.view addSubview:myView];
[AController release];
以及(选项 3)
AController * vc = [[AController alloc] initWithNibBundle:@"AController" bundle:nil]; [self.nc pushViewController:vc animated:NO];
我对所有 3 个选择都遇到相同的错误。每个选项都在“过程”方法中进行了尝试。“过程”是用 B.m 写的。任何人都可以提供一些帮助,以便我可以解决这个问题吗?任何关于为什么这些选项失败的指导都将对我的理解非常有帮助,并且将不胜感激。感谢您帮助菜鸟!
解决方案
如果 AController
是一个 UIView
子类,它无法加载 NIB。验证它实际上是一个控制器,但是从 initWithFrame
以及将其添加到视图的方式,看起来并非如此,或者处理不正确。