문제

Am a beginner in iOS, am creating an application with the help of table view. I just run my application, while running the app, the app does not calling the method cellForRowIndexPath. Am using Json as web service. In the output screen, the parsing data is shown but it is not get display in simulator. i put breakpoint and i understood the cellForRowIndexPath path was not called. I drag datasourse and data delegate to files onner of xib file. but nothing is occurring... the table view is get displaying but there is no content... am screwed.. Any one please help me...

@implementation MSPackagesController

@synthesize packageTable;
@synthesize packages;
@synthesize mainCtrl;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}


-(void)viewDidLoad
{
    [super viewDidLoad];
}

-(void)parseData    {

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.animationType = MBProgressHUDAnimationFade;
    hud.detailsLabelText = @"Loading...";

    MSJsonParser *parser = [[MSJsonParser alloc]initWithParserType:kPackagesParsing];
    parser._parserSource = self;
    [parser requestParsingWithUrl:PACKAGES_LIST_URL];
}

-(void)sharePackageFromCell:(UIButton*)btn
{
    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.animationType = MBProgressHUDAnimationFade;
    hud.detailsLabelText = @"Loading...";

    NSString *title = [[self.packages objectAtIndex:btn.tag] packageName];
    /*NSURL *imgUrl = [NSURL URLWithString:[[self.promotions objectAtIndex:btn.tag] picture]];
     NSData *imgdata = [NSData dataWithContentsOfURL:imgUrl];
     UIImage *image = [UIImage imageWithData:imgdata];*/
   // NSURL *imgUrl = [NSURL URLWithString:[[self.packages objectAtIndex:btn.tag] picture]];
    NSString *desc = [[self.packages objectAtIndex:btn.tag] packageDescription];
    NSString *message = @"Visit GlamZapp in AppStore";

    UIActivityViewController *activityCtrl = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:title,desc,message, nil] applicationActivities:nil];
    activityCtrl.excludedActivityTypes  = @[UIActivityTypePrint,UIActivityTypePostToWeibo,UIActivityTypeMessage,UIActivityTypeAssignToContact];

    activityCtrl.completionHandler = ^(NSString *activityType, BOOL completed)
    {
        NSLog(@" activityType: %@", activityType);
        NSLog(@" completed: %i", completed);
    };

    [self.mainCtrl presentViewController:activityCtrl animated:YES completion:^{
        [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
    }];
}

- (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 [packages count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    MSPackagesCell *cell = (MSPackagesCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray *cells = [[NSBundle mainBundle]loadNibNamed:[Common checkDeviceforController:@"MSPackagesCell"] owner:nil options:nil];
        for (id eachObject in cells) {
            cell = eachObject;
            break;
        }
        //cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }

    // Configure the cell...
   // NSURL *imgUrl = [NSURL URLWithString:[[self.promotions objectAtIndex:indexPath.row]picture]];
    //[cell.promoImg setImageWithURL:imgUrl placeholderImage:[UIImage imageNamed:@"slider_dummy.jpg"] andSize:cell.promoImg.frame.size];
    cell.PackageName.text = [[self.packages objectAtIndex:indexPath.row] packageName];
    cell.PackageDescription.text = [[self.packages objectAtIndex:indexPath.row] packageDescription];

//    NSMutableAttributedString *strikedPrice = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@ %@",CURRENCY_UNIT,[[self.packages objectAtIndex:indexPath.row] packageAmount] ] ];
//    [strikedPrice addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInt:2] range:NSMakeRange(0, [strikedPrice length])];


    //cell.oldPriceLabel.attributedText = strikedPrice;
    cell.PriceLabel.text = [NSString stringWithFormat:@"%@ %@",CURRENCY_UNIT,[[self.packages objectAtIndex:indexPath.row] packageAmount] ];

    //[string appendFormat:@"%@\r\n", message];

   // cell.promocodelabel.text = [NSString stringWithFormat:@"Promo code: %@",[[self.packages objectAtIndex:indexPath.row] promoCode]];

    cell.ShareButton.tag = indexPath.row;
    [cell.ShareButton addTarget:self action:@selector(sharePackageFromCell:) forControlEvents:UIControlEventTouchUpInside];

    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

  //    MSPackageDetailsController *promDet = [[MSPackageDetailsController alloc]initWithNibName:[Common checkDeviceforController:@"MSPackageDetailsController"] bundle:nil];
//    promDet.delegate = self;
//    promDet.offerId = [[self.packages objectAtIndex:indexPath.row] promoId];
//    promDet.title = [[self.packages objectAtIndex:indexPath.row] promoTitle];

  //  [self.delegate didSelectPromotion:promDet];

    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}



-(void)foundPackagesData:(NSArray *)packa
{
    [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
    self.packages = packa;
    [self.packageTable reloadData];

}

-(void)connectionFailed
{
    [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
}
도움이 되었습니까?

해결책

I think you have not added UITableviewDataSource and UITableViewDelegate in your .h file

다른 팁

Add UITableViewDataSource,UITableViewDelegate in interface (.h) file

@interface MSPackagesController : UIViewController <UITableViewDataSource,UITableViewDelegate>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top