2013-09-03 1 views
1

У меня есть сегментированное управление и onclick каждого сегментарного элемента управления показано представление таблицы, которое имеет uistepper, связанный с каждой ячейкой. Один сегментный дозатор имеет UIStepper на своих таблицах, но все же он появляется, когда я переключаюсь между сегментами, возможно, из других сегментов. Я использую метод addSubView для добавления uistepper. но как я удаляю его при переключении на этот сегмент.UIStepper в TableView в сегментированном управлении

Спасибо

EDIT

if(selectedSegment == 0){ 
     cell.textLabel.text=[selectedJointWork objectAtIndex:indexPath.row]; 
     cell.textLabel.font=[UIFont fontWithName:@"Times New Roman" size:17.f]; 

    } 

    if(selectedSegment == 1){ 
     cell.textLabel.text=[selectedSampling objectAtIndex:indexPath.row]; 
     cell.textLabel.font=[UIFont fontWithName:@"Times New Roman" size:17.f]; 

     UILabel *lbl1 = [[UILabel alloc] init]; 
     lbl1.frame = CGRectMake(400, 16, 35 ,12); 
     [lbl1 setBackgroundColor:[UIColor clearColor]]; 
     //lbl1.text = @"1"; 
     //lbl1.text = [quantityArray objectAtIndex:indexPath.row]; 
     [cell.contentView addSubview:lbl1]; 

     [lbl1 setTag:456]; 

     UIStepper* stepper = [[UIStepper alloc] init]; 
     stepper.frame = CGRectMake(450, 10, 100, 10); 

     [cell.contentView addSubview: stepper]; 

     stepper.minimumValue = [[samplingQuantity objectAtIndex:indexPath.row] intValue]; 

     [stepper setTag:123]; 
     [stepper addTarget:self action:@selector(stepperOneChanged:) forControlEvents:UIControlEventValueChanged]; 

     int count = [[samplingQuantity objectAtIndex:indexPath.row] intValue]; 

     [(UIStepper*)[cell viewWithTag:123] setValue:count]; 
     [(UILabel*)[cell viewWithTag:456] setText:[NSString stringWithFormat:@"%d",count]]; 
    } 

Ниже сегмента Метод коммутации

- (IBAction)segmentSwitch:(id)sender { 

UISegmentedControl *segmentedControl = (UISegmentedControl *) sender; 
NSInteger selectedSegment = segmentedControl.selectedSegmentIndex; 

[table2 reloadData]; 

if (selectedSegment == 0) { 
    [jointWork removeAllObjects]; 
    AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    self.managedObjectContext=appDelegate.managedobjectcontext; 

    NSFetchRequest * fetch = [[[NSFetchRequest alloc] init] autorelease]; 
    [fetch setEntity:[NSEntityDescription entityForName:@"VisitedWith" inManagedObjectContext:self.managedObjectContext]]; 
    NSArray * result = [self.managedObjectContext executeFetchRequest:fetch error:nil]; 
    for (NSDictionary *dic in result) 
    { 
     [jointWork addObject:[dic valueForKey:@"vname"]]; 
     [Itemsids addObject:[dic valueForKey:@"vid"]]; 
    } 

    if([jointWork count] == 0){ 
     UIAlertView *save = [[[UIAlertView alloc] 
           initWithTitle:@"Not Found!" 
           message:@"Data not Found" 
           delegate:self 
           cancelButtonTitle:@"Ok" 
           otherButtonTitles: nil] autorelease]; 
     [save show]; 
    } 

    [table reloadData]; 

} 
else if(selectedSegment == 1){ 
    [sampling removeAllObjects]; 
    AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    self.managedObjectContext=appDelegate.managedobjectcontext; 

    NSFetchRequest * fetch = [[[NSFetchRequest alloc] init] autorelease]; 
    [fetch setEntity:[NSEntityDescription entityForName:@"Sampling" inManagedObjectContext:self.managedObjectContext]]; 
    NSArray * result = [self.managedObjectContext executeFetchRequest:fetch error:nil]; 
    for (NSDictionary*dic in result) 
    { 
     NSLog(@"Object At index%@",[dic valueForKey:@"productname"]); 

     [sampling addObject:[dic valueForKey:@"productname"]]; 
     [Itemsids addObject:[dic valueForKey:@"productid"]]; 
    } 
    if([sampling count] == 0){ 
     UIAlertView *save = [[[UIAlertView alloc] 
           initWithTitle:@"Not Found!" 
           message:@"Data not Found" 
           delegate:self 
           cancelButtonTitle:@"Ok" 
           otherButtonTitles: nil] autorelease]; 
     [save show]; 
    } 

    [table reloadData]; 
} 

}

+0

показать код? использовать 'removeFromSuperview' для удаления uistepper с соответствующим тегом –

+0

это метод cellForRowAtIndexPath. – LeXeR

+0

В основном я хочу удалить метки и uisteppers, когда выбран сегмент 0. – LeXeR

ответ

1

Вы можете попробовать это.

if ([cell.contentView subviews]) 
{ 
    for (UIView *subview in [cell.contentView subviews]) 
    { 

    if(subview.tag==123 || subview.tag==456) 
    [subview removeFromSuperview]; 

    } 
} 
+0

Отличный ответ .... спасибо ,,, работал как шарм :) – LeXeR

+0

btw это должно быть, если (subview.tag == 123 || subview.tag == 456) .. u've пропустил '==' во втором назначение. – LeXeR

+0

о, да, рад помочь вам .. –