将参数从UITableViewCell传递到UITableView(动态内容)

时间:2014-03-28 00:58:40

标签: ios objective-c uitableview dynamic-content

如何通过自定义 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。

1 个答案:

答案 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”