如何通过自定义 UITableViewCell 类中的参数将我的对象传递到 UITableView 。因为我使用的是动态原型单元格,所以我无法将对象分配给单元格中的文本视图。出于这个原因,我需要将我的对象从类传递给类。
MainTableViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *myURL = [[NSURL alloc]initWithString:@"http://domain.com/json2.php"];
NSData *myData = [[NSData alloc]initWithContentsOfURL:myURL];
NSError *error;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:myData options:NSJSONReadingMutableContainers error:&error];
if(!error)
{
for (NSDictionary * needs in jsonArray)
{
textNeedTitle.text = [needs objectForKey: @"needTitle"];
textNeedPoster.text = [needs objectForKey: @"needPoster"];
textNeedDescrip.text = [needs objectForKey: @"needDescrip"];
}
}
else
{
textNeedTitle.text = [NSString stringWithFormat:@"Error--%@",[error description]];
}
return cell;
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
}
TestTableViewCell.h
#import <UIKit/UIKit.h>
@interface TestTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UITextView *textNeedTitle;
@property (weak, nonatomic) IBOutlet UITextView *textNeedPoster;
@property (weak, nonatomic) IBOutlet UITextView *textNeedDescrip;
上面的每个属性都通过Referencing Outlet分配给它适当的UITextView。
答案 0 :(得分:1)
我不完全确定你要做什么,但我注意到在你的UITableViewController中你得到的是一个UITableViewCell而不是你的自定义类TestTableViewCell。 应该是这样的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TestTableViewCell *cell = (TestTableViewCell *) [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
}
确保: *在故事板中,单元格的重用标识符是“Cell”(或更合适的名称......) *原型单元格的类是TestTableViewCell
然后你应该能够访问单元格的属性,比如cell.textNeedTitle.text = @“Something”