2016-09-26 1 views
0

Основываясь на подключении к Интернету, я должен удалить или добавить subview для просмотра.Как удалить представление из супервизора во время выполнения?

Я могу добавить subview во время выполнения. Но не удалять из subview.

Я попытался как этот

if ([statusString isEqualToString:@"Access Not Available"]){ 
    view = [[UIView alloc]initWithFrame:CGRectMake(0, navigationView.frame.size.height, self.view.frame.size.width, 50)]; 
    [self.view addSubview:view]; 
    view.backgroundColor = [UIColor lightGrayColor]; 
}else{ 
    [[NSOperationQueue mainQueue] addOperationWithBlock:^ { 

     [view removeFromSuperview]; 
    }]; 
} 

Но это не вынимая из надтаблицы.

Как это сделать?

+1

Это будет работать, если 'view' ничто. – Avi

+0

Можете ли вы быть более конкретным, чем «не работает»? Что в итоге? – Arc676

+0

@ Arc676 см. Мой отредактированный вопрос – Himanth

ответ

0
///in view did load 
view_NoConnectn = [[UIView alloc]init]; 
[view_NoConnectn setBackgroundColor:[UIColor whiteColor]]; 
[view_NoConnectn setFrame:CGRectMake(0, frameHeight, frameWidth, 35)]; 

UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow]; 
bool isFound=false; 
for(UIView *child in [mainWindow subviews]) 
{ 
    if([child tag]==007) 
     isFound=true; 
} 
if(!isFound) 
{ 
    [mainWindow addSubview: btn_setting]; 
} 

[self.navigationController.view addSubview:view_NoConnectn]; 



////// whereever required 
    if (show){ 
    if (self.navigationController.view.frame.size.height == frameHeight) { 
     [UIView animateWithDuration:1.0 animations:^{ 
      [self.navigationController.view setFrame:CGRectMake(self.navigationController.view.frame.origin.x, self.navigationController.view.frame.origin.y, self.navigationController.view.frame.size.width, frameHeight - 35)]; 
      [view_NoConnectn setFrame:CGRectMake(0, frameHeight-35, frameWidth, 35)]; 
      [self.view layoutIfNeeded]; 
     }]; 

    } 

} 
else 
{ 
    if (self.navigationController.view.frame.size.height != frameHeight) { 
     [UIView animateWithDuration:1.0 animations:^{ 
      [UIView animateWithDuration:0.8 animations:^{ 
       [self.navigationController.view setFrame:CGRectMake(self.navigationController.view.frame.origin.x, self.navigationController.view.frame.origin.y, self.navigationController.view.frame.size.width, frameHeight)]; 
       [view_NoConnectn setFrame:CGRectMake(0, frameHeight, frameWidth, 35)]; 
       [self.view layoutIfNeeded]; 
      }]; 
     } completion:^(BOOL finished) { 
      [view_NoConnectn removeFromSuperview]; 
     }]; 
    } 

}