2013-08-05 7 views
0

в моем firstviewcontroller я представил modalviewcontroller, затем через действие я называю метод, который покажет предупреждение и смещать modalview, но когда она исчезает viewWillAppear не называется:Viewwillappear не вызывается после увольнения modalviewwontroller

firstviewcontroller

-(IBAction)AddActivity:(id)sender{ 


    CreateActivity *addViewController = [[CreateActivity alloc] initWithNibName:@"CreateActivity" bundle:nil]; 

    addViewController.delegate = self; 
    addViewController.modalPresentationStyle = UIModalPresentationFormSheet; 

    addViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

    [self presentModalViewController:addViewController animated:YES]; 


    addViewController.view.superview.frame = CGRectMake(50, 260, 680, 624); 

} 
//in secondviewcontroller I use an alert view that call this method in order to dismiss modalview 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if (buttonIndex == 0){ 


     if ([self respondsToSelector:@selector(presentingViewController)]){ 
      [self.presentingViewController dismissModalViewControllerAnimated:YES]; 
     } 
     else { 
      [self.parentViewController dismissModalViewControllerAnimated:YES]; 
     } 
    } 
} 

, когда он исчезает, viewWillAppear не называется, чего мне не хватает, пожалуйста,

ответ

0

Проблема заключается в том, что viewWillAppear не вызывается, когда представление исчезает. Метод, который вы ищете, - viewWillDisappear.

См. Ниже дополнительные пояснения.

- viewWillAppear: Вызывается прямо перед представлением.

- viewDidAppear: Вызывается, когда вид появился (отображается на экране).

- viewWillDisappear: Вызывается прямо перед тем, как вид исчезнет.

- viewDidDisappear: Вызывается, когда вид исчез (не отображается на экране).

Кроме того, убедитесь что ваш код написан правильно так:

- void)viewWillAppear:(BOOL)animated { 
    // work your magic here 
} 

-(void)viewWillDisappear:(BOOL)animated { 
    // work your magic here 
} 
+0

Благодарим вас за ответ. Даже когда я добавляю viewwilldisappear, у него не было доступа к viewwillappear моего первого монитора управления. –

+0

Используете навигационный контроллер? Также не могли бы вы разместить свой код viewWillAppear? – dana0550

+0

Нет, я не делал этого, я просто представляю modaly мой viewcontroller, и хочу уволить его, а затем вызвать viewwillappear, чтобы сделать некоторые манипуляции. –

2

Изменение ниже код будет работать:

addViewController.modalPresentationStyle = UIModalPresentationFullScreen; 

Он будет работать.

+0

Это не решение. 1) что, если мне нужен другой стиль презентации? 2) когда контроллер представления представлений выглядит фоном, становится черным, и это плохо –