很抱歉,如果这个问题很基本,但过去两天我一直被这个错误困扰,而且我一直无法克服它。我正在使用 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 以及将其添加到视图的方式,看起来并非如此,或者处理不正确。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top