2011-03-06 82 views
0

有问题的应用程序是一个简单的示例程序。在我的视图控制器头,我已经按钮实例化为例如:当从NIB加载视图时,iPhone程序立即退出

@interface ObscurelyNamedViewController : UIViewController { 
    UIButton *yoButton; 
} 
@property(nonatomic, retain) IBOutlet UIButton *yoButton; 

- (IBAction)yoButtonPressed:(id)sender; 

yoButtonPressed:被实现为这样:

[yoButton setTitle: @"I said 'yo', jammit!" forState: UIControlStateNormal]; 
// repeat for other button states 
. 
. 
. 

在界面生成器,我已连接的UIButton的润色内部事件到文件所有者ObscurelyNamedViewController中的yoButtonPressed方法来识别触摸。作为回报,我已将文件所有者的出口连接回yoButton,以便更新其标题。

当我构建并运行时,我没有收到任何错误,但没有显示,应用程序立即退出。居住在IB的唯一的其他东西是UIImage视图。我错过了什么,或者我错误地连线了什么?

编辑:在控制台中,我看到以下消息:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "BradiiCaliiViewController" nib but the view outlet was not set.' 
+1

当它退出时,您应该在控制台中收到一条消息。有太多这可能是错误的 - 需要消息来帮助 – 2011-03-06 21:24:59

+0

再次有这个问题,但这次无法连接视图插座。解决和张贴在这里:http://stackoverflow.com/questions/5227332/view-outlet-not-available-to-files-owner – 2011-03-08 01:37:14

回答

0

从评论继续前行娄佛朗哥回答:

BradiiCaliiViewController抱怨说,它没有NIB加载甚至后视图。您必须将文件所有者的视图插座连接到您在BradiiCaliiViewController的XIB中的视图。

1

这可能无关,与行动。你说,“没有显示,应用程序立即退出”,这意味着该操作从未发送过。

需要从控制台的消息,但检查

  1. 你使用initWithNibName?如果是这样,你的名字完全正确吗?
  2. 你是否在做任何有关Outlets的init?你不应该 - 在viewDidLoad中做。

知道在您的控制台中的消息将帮助我们给你真正的答案。

编辑:基于您的控制台消息

  1. 双击的.xib文件去IB
  2. 点击文件拥有者
  3. 转到连接督察
  4. 视图出口未设置(对吗?) - 将圆圈拖到文档窗口中的视图图标上。

(我很抱歉,但我没有IB在我面前 - 这是从内存 - 到处寻找视图出口处连接检查员如果我错了有关的确切位置)

+0

啊,这可能会有所帮助...终止应用程序由于未捕获的异常'NSInternalInconsistencyException',原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加载了“BradiiCaliiViewController”笔尖,但未设置视图插口。 – 2011-03-06 21:42:31

+2

BradiiCaliiViewController抱怨说,即使在加载NIB后它也没有视图。您必须将File's Owner的'view'出口连接到BradiiCaliiViewController的XIB中的视图。 – hoha 2011-03-06 21:51:52

+0

@hoha:促进评论回答。固定在IB,并做了诀窍。 )。感谢这两个! – 2011-03-07 00:21:44