UITableView代理没有被调用

时间:2012-08-29 05:11:58

标签: objective-c ios uitableview delegates

我在运行时创建一个视图,并添加一个UITableView作为其子视图。 我还将tableview的委托定义为self。

但仍然没有调用UITableView Delegates

@interface cViewController:UIViewController

RouteShowView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
[RouteShowView setBackgroundColor:[UIColor blueColor]];

table = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, 320, 410) style:UITableViewStylePlain];
table.delegate = self;
UIButton * Go = [UIButton buttonWithType:UIButtonTypeRoundedRect];
Go.frame = CGRectMake(0, 4, 70, 42);
[Go setTitle:@"<< BACK" forState:UIControlStateNormal];
[Go addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
[Go setBackgroundColor:[UIColor blackColor]];

[RouteShowView addSubview:table];
[RouteShowView addSubview:Go];

[self.view addSubview:RouteShowView]; 

3 个答案:

答案 0 :(得分:2)

假设您在 .h 文件中添加了 UITableViewDelegate,UITableViewDataSource ...我认为您错过了 .m 文件中的此代码

table.dataSource = self;

答案 1 :(得分:1)

缺少的东西是

//.h file
@interface SimpleTableView : UITableView <UITableViewDelegate, UITableViewDataSource>
{
}
@end

// in .m file
table = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, 320, 410) style:UITableViewStylePlain];

// set delegated object
table. delegate = self;

// set source for data
table.dataSource = self;

实现在UITableView

文档中定义的@required协议
@protocol UITableViewDataSource<NSObject>

@required

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

答案 2 :(得分:0)

首先尝试通过xcode上的代码完成来检查委托方法,如果你在类中获得了适当的委托,xcode会自动检测你的委托方法。

我想你可能不会宣布

@interface SimpleTableView : UITableView <UITableViewDelegate, UITableViewDataSource>