2014-12-28 4 views
0

Я довольно новичок в программировании на ios, и в последнее время я столкнулся с проблемой. Я пытаюсь перейти к выбранной вкладке tabbarviewcontroller программно. При входе на эту выбранную вкладку удалите все элементы управления и переустановите ее с помощью разных элементов управления.Удалить все элементы управления (subviews) в UITabBarViewController

Мне удалось программно перейти к выбранной вкладке, однако я не могу удалить все подсмотры.

Ниже фрагмент из моих кодов ..

- (IBAction)btnSave:(id)sender { 
      orthoPaedicInjuryTabBarViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"OrthoInjuryTabBarVC"]; 
      orthoPaedicInjuryTabBarViewController.selectedIndex = 2; 
      [self presentViewController:orthoPaedicInjuryTabBarViewController animated:YES completion:nil]; 
      self.alert = [[UIAlertView alloc] initWithTitle:@"Empty Field, Step3" 
                message: @"Please fill up the frequency of exercises" 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 

      [self.alert show]; 

} 




    - (void)viewWillAppear:(BOOL)animated { 
    Store *MyStore = [Store SharedStore]; 
    OrthoInjury *orthoInjury = MyStore.orthoInjury; 

    NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
    [format setDateFormat:@"dd-MM-yyyy"]; 
    NSString *Dob = [format stringFromDate:orthoInjury.dateOfInjury]; 

    self.lblDateOfInjury.text= Dob; 

    // Do any additional setup after loading the view, typically from a nib. 
    self.typeOfExercisesList = [Utility GetTypesOfExercisesList]; 

    self.pickerViewTypesOfexercises.dataSource = self; 
    self.pickerViewTypesOfexercises.delegate = self; 

    TherapyPhases *therapyPhases = MyStore.therapyPhases; 
    self.tbxNumberOfWeeks.text = @(therapyPhases.durationWeeks).stringValue; 

    if([[orthoInjury.natureOfInjury uppercaseString] isEqualToString:[@"Repetitive Strain Injury" uppercaseString]]) 
    { 
    NSArray *subArray = [self.view subviews]; 
    if([subArray count] != 0) { 
     for(int i = 1 ; i < [subArray count] ; i++) { 
      [[subArray objectAtIndex:i] removeFromSuperview]; 
      /*if ([[subArray objectAtIndex:i] isKindOfClass:[UILabel class]]) 
      { 
       NSLog(@"%@",[[subArray objectAtIndex:i] text]); 
      }*/ 
     } 
    } 
    } 
} 

ответ

0

Попробуйте ниже для удаления подвидов: -

NSMutableArray *subVws=[self.tabBarController.view.subviews mutableCopy]; 
[subVws performSelector:@selector(removeFromSuperview)]; 
+0

Привет, я попытался это и он бросил меня исключение со следующими данными , 2014-12-28 18: 21: 21,681 Physio [1876 523149] - [__ NSArrayM removeFromSuperview]: непризнанные селектор направлен например 0x7fd250f67ab0 2014-12-28 18: 21: 21.683 Physio [1876: 523149] ** * Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [__ NSArrayM removeFromSuperview]: непризнанный селектор, отправленный в экземпляр 0x7fd250f67ab0' *** Первый стек вызовов броска: ( – fuzionist

Смежные вопросы