-1

我正在制作一个里面有动态表的应用程序。我设法让它与 MainviewController 内的表一起工作,但现在我被卡住了。我试图将表格代码放在它自己的类中。奇怪的是,它没有给出任何错误。这就是我所做的:MainviewController.m:

CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * 0;//0 will later be i
frame.origin.y = 0;
frame.size.width = self.scrollView.frame.size.width;

TellerTable *tellerTable = [[TellerTable alloc] initWithFrame:frame style:UITableViewStyleGrouped];

[tellerTable loadWithJsonData:JSONArray];
[tellerTable setDataSource:tellerTable];


[self.view addSubview:tellerTable];
[tellerTable reloadData];

TableTeller.m:

-(void)loadWithJsonData:(NSArray *)JA
{
   self.JSONArray = JA;
   tableview = self;

   self.delegate = self;
   self.dataSource = self;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSMutableArray *TellerItems = [JSONArray objectAtIndex:section];
    return TellerItems.count;
}

(其余制作表格 cellForRowAtIndexPath 等。) TellerTable.h

@interface TellerTable : UITableView <UITableViewDataSource, UITableViewDelegate>
{
    UITableView *tableview;
}

@property (nonatomic, retain) IBOutlet UITableView *tableview;
@property (nonatomic, retain) IBOutlet NSArray *JSONArray;
    -(void)loadWithJsonData:(NSArray *)JA;
@end

奇怪的是,它先是 loadwithJSON,然后它调用 numberOfRowsInSection,但之后它就停止了。它不会将表格添加到滚动视图中。我做错了什么/忘记了?

4

1 回答 1

0

我认为你应该改变你的方法..你已经创建了 UITableView 的一个子类,然后在同一个上创建了另一个 tableView 属性,然后你将它分配给 self 即使它有效,你也会感觉不对。我在这里看不到任何子类化的使用,您没有自定义表格,那么为什么要对其进行子类化?将 tableView(拖放)添加到 xib 或情节提要,然后将插座连接到 mainviewcontroller。您可以使用此方法使其以某种方式工作,但它容易出错,可读性较差等

于 2013-10-24T10:19:47.287 回答