在 Interface Builder 中连接元素

Posted

技术标签:

【中文标题】在 Interface Builder 中连接元素【英文标题】:connecting elements in InterfaceBuilder 【发布时间】:2012-08-27 07:10:49 【问题描述】:

我在连接 TableView 时遇到问题(我认为这是我的错误,也许是另一个错误),我遇到了这个错误:

-[NSObject tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x796aaa0

这是连接问题,不是吗?

这是我的通知。h:

#import <UIKit/UIKit.h>

@interface Notice : UIViewController <UITableViewDataSource, UITableViewDelegate>


UITableView *mainTableView;
NSMutableArray *contentsList;




@property (nonatomic, retain) NSMutableArray *contentsList;
@property (nonatomic, retain) IBOutlet UITableView *mainTableView;

@end

在notice.m中,我有UITableView实现的常用方法。

这是我的界面生成器:

提前谢谢你

【问题讨论】:

【参考方案1】:

您已将表的数据源插座连接到“First Responder”,而实际上您应该将其连接到视图控制器。他们不是一回事。第一响应者图标是“第一响应者”的代理,即响应者链中的当前第一个对象。它会根据程序的状态而变化,并且不太可能指向您的视图控制器。

【讨论】:

谢谢!!这件事让我很困惑!【参考方案2】:

首先在xib中设置Tableview delegate和datasource。您收到此错误是因为您已在 .h 方法中声明了这些协议,但尚未在 .m 方法中实现数据源的 @required 方法。实现 tableview datasource 的两个必需方法。这可能会解决您的问题。

【讨论】:

以上是关于在 Interface Builder 中连接元素的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Interface Builder 中连接 IBOutlet

Interface Builder 和 Cocoa:在 App Controller 类后面连接

如何使用 Interface Builder 在其他 UI 元素的背景中添加 UIButton?

如何指定我希望 UI 元素在 Interface Builder 中进行方向更改的位置?

如何使用主 iPhone 视图之外的 UI 元素在 Interface Builder 中设置 UIScrollView?

iOS - Interface Builder - 将元素作为子视图添加到 UIView