0

i have a UITableView in a storyboard in an ios xcode project,

i also have an array of menuitem objects stored in itemarray:

NSMutableArray *itemarray;

this is my menuitem.h file

#import <Foundation/Foundation.h>
@interface menuitem : NSObject
@property (nonatomic) NSString *itemtitle;
@property (nonatomic) NSString  *itemdesc;
@property (nonatomic) int itemid;
@property (nonatomic) int itemprice;
@property (nonatomic) NSString  *itemcat;
@end

this is my tableviewcell.m file:

#import "tableviewcell.h"
#import "menuitem.h"
@interface tableviewcell ()
@property (nonatomic, weak) IBOutlet UILabel *titleLabel;
@property (nonatomic, weak) IBOutlet UILabel *descLabel;
@property (nonatomic, weak) IBOutlet UILabel *priceLabel;


@end

@implementation tableviewcell
-(void)configureWithmenuitem:(menuitem *)item{
    NSLog(@"hello");

    self.titleLabel.text = item.itemtitle;
    self.descLabel.text = item.itemdesc;

    self.priceLabel.text = [NSString stringWithFormat:@"%.1d", item.itemprice];
}

@end

i want to get the itemtitle, itemdesc and itemprice from each instance of menuitem into 3 labels on each of the tableviewcells

1 Answer 1

1

Your tableviewcell is a View and thus it should only know how to display itself and not what to display. It's the job of your controller (through the delegate tableView:cellForRowAtIndexPath: method) to tell the view what to display.

Thus you should do something like:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Id"];

      //Assuming you've stored your items in an array.
      Item *item = [items objectAtIndex:indexPath.row];

      cell.titleLabel.text = item.itemTitle;
      cell.descLabel.text = item.itemdesc;
      cell.priceLabel.text = [NSString stringWithFormat:@"%.1d", item.itemprice];
      return cell;
}

^ The above code assumes you have a prototype cell. If you don't, you'll have to alloc if cell is nil after dequeue.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.