2010-07-19 3 views
0

У меня есть следующий код, где я отображаю контроллер вида в навигационном контроллере. Только для теста я показываю его в течение 3 секунд, а затем увольняю его. Что происходит, так это то, что он исчезает, а затем снова появляется через секунду или около того. Что я делаю неправильно?Modal view controller

- (void) test 
{ 
    [myNavCtrl dismissModalViewControllerAnimated:YES]; 
} 

- (void) viewDidAppear:(BOOL)animated 
{ 
    MyViewController *ctrl = [[MyViewController alloc] init]; 
    [ctrl setDelegate:self]; 
    myNavCtrl = [[UINavigationController alloc] initWithRootViewController:ctrl]; 
    [myNavCtrl setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
    [self presentModalViewController:myNavCtrl animated:NO]; 
    [ctrl release]; 
    [myNavCtrl release]; 

    [self performSelector:@selector(test) withObject:nil afterDelay:3]; 
} 

ответ

1

viewWillAppear метод вызывается каждый раз, когда вид контроллера появляется так что вы создали цикл. Появится представление, оно вызывает вид модальности, который охватывает вызывающий вид. Когда модальный вид исчезает, вызывающий контроллер viewWillAppear снова вызывается. Намочите, промойте, повторите.

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