dismissModalViewControllerAnimated функция, не отклоняющая представление - PullRequest
2 голосов
/ 21 января 2010

Я пытаюсь использовать dismissModalViewController:Animated:, чтобы отклонить свое мнение, но оно не отклоняет его, что бы я ни пытался Вы можете увидеть мои попытки освободить представление в методе hideSplash внизу. Пожалуйста, если кто-то может помочь, это будет с благодарностью. Мой код размещен ниже:

#import "SplashViewController.h"

@implementation SplashViewController

- (void) didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void) viewDidUnload {

}

- (void) dealloc {
    [super dealloc];
}

-(void) showSplash {
    modalViewController = [[UIViewController alloc] init];
    modalViewController.view = modelView;
    [self presentModalViewController:modalViewController animated:NO];
    [activityIndicator startAnimating ];
    //[self bigcalculation];
    //[self performSelector:@selector(hideSplash) withObject:nil afterDelay:2.0];
}

- (void) viewDidAppear:(BOOL)animated {
    NSLog(@"View Did Appear");
    [self bigcalculation];
}

- (void) bigcalculation {
    NSLog(@"Big Calc Start");
    for (int i = 0; i <= 648230; i++) {
        for (int j = 0; j <= 1200; j++) {

        }
    }
    NSLog(@"Big Calc End");
    [self performSelector:@selector(hideSplash) withObject:nil];
}

- (void) hideSplash {
    NSLog(@"Hide");
    //[self dismissModalViewControllerAnimated:NO];
    //[[self parentViewController] dismissModalViewControllerAnimated:YES];
    [[self modalViewController] dismissModalViewControllerAnimated:YES];
    NSLog(@"End Hide");
}

@end

Ответы [ 3 ]

9 голосов
/ 21 января 2010

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

Попробуйте заменить:

[[self modalviewController] dismissModalViewControllerAnimated:YES];

с

[self dismissModalViewControllerAnimated:YES];
2 голосов
/ 24 мая 2011

Попробуйте использовать это:

[self.parentViewController dismissModalViewControllerAnimated:NO];
1 голос
/ 21 января 2010

Я нашел решение на тот случай, если у кого-то еще возникнет эта проблема:

[self performSelector:@selector(hideSplash) withObject:nil];

Должно быть

[self performSelector:@selector(hideSplash) withObject:nil afterDelay:0.0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...