Xcode 实现UITableView和it';s控制器

Xcode 实现UITableView和it';s控制器,xcode,controller,uitableview,Xcode,Controller,Uitableview,我试图以编程方式实现UITableView 我有一个UIView(名为IndexView)。以下是构造函数: - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { MyTableViewController* favorite_table_view_controller = [[MyTableViewController alloc] ini

我试图以编程方式实现UITableView

我有一个UIView(名为IndexView)。以下是构造函数:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) 
    {
        MyTableViewController* favorite_table_view_controller = [[MyTableViewController alloc] init];
        UITableView* theTableView = [[UITableView alloc] initWithFrame:CGRectMake(20, 65, 280, 350) style:UITableViewStylePlain];
        theTableView.delegate = favorite_table_view_controller;
        theTableView.dataSource = favorite_table_view_controller;
        [self addSubview:theTableView];
    }
    return self;
}
MyTableViewController的定义如下:

@interface MyTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
我得到了这个错误:

[__NSMallocBlock__ tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6897de0
2012-07-18 12:07:24.607 ButtonsTest[22854:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSMallocBlock__ tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6897de0'
我认为将控制器绑定到视图时会出现问题。但是我找不到在哪里


知道问题来自何处吗?

您不应该从视图构造viewcontroller。应该以另一种方式进行。(从UIViewController构造视图)


创建一个ViewController子类
UIViewController
,然后让它实现
UITableViewDelegate
UITableViewDataSource
。如果仍然需要从另一个控制器类控制UITableView,请在父级
UIViewController
中设置此连接,而不要从视图本身。这是在iOS中大量使用MVC的基本前提

是的,你可以在第一个区块上看到它。我尝试在没有界面生成器的情况下实现它。我的控制器没有实现UITableViewController,但是实现了UIViewController,所以我没有任何self.tableView.ah是的。很抱歉您的代码中似乎有一些不匹配之处MyTableViewController看起来像是FavoriteTableViewController?另外,似乎您有多个ViewController来控制UITableView?好的。谢谢你的编辑。我想你误解了该框架应该如何使用。我正在编辑上面的答案。请继续关注:-)是的,这是因为我在写文章时更改了名字。我用这个好名字编辑了我的第一篇文章。
[__NSMallocBlock__ tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6897de0
2012-07-18 12:07:24.607 ButtonsTest[22854:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSMallocBlock__ tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x6897de0'