2014-02-07 6 views
7

iOS의 초보자인데, 테이블 뷰를 사용하여 애플리케이션을 생성하고 있습니다. 응용 프로그램을 실행하는 동안 응용 프로그램을 실행하면 응용 프로그램이 cellForRowIndexPath 메서드를 호출하지 않습니다. Json을 웹 서비스로 사용하고 있습니까? 출력 화면에서 파싱 데이터가 표시되지만 시뮬레이터에는 표시되지 않습니다. 나는 중단 점을 넣었고 cellForRowIndexPath 경로가 호출되지 않았 음을 이해했습니다. 나는 datasourse와 data delegate를 xib 파일의 onner 파일로 드래그한다. 하지만 아무것도 테이블 뷰가 표시 얻을입니다 ... 발생하지 않고 아무 내용이없는 ... 나사입니다 .. 모든 사람은 (.H) 인터페이스에서 UITableViewDataSource, UITableViewDelegate 추가 ...cellForRowAtIndexPath 메소드가 호출되지 않았습니다.

@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]; 
} 

답변

5

파일

1

를 좀 도와주세요 나는 당신이 당신의 .h 파일에 UITableviewDataSource와 UITableViewDelegate를 추가하지 않은 생각

@interface MSPackagesController : UIViewController <UITableViewDataSource,UITableViewDelegate> 
관련 문제