Немедленный запуск нового UIViewController из viewcontroller - PullRequest
0 голосов
/ 22 сентября 2011

Когда запускается UIViewController, я хочу немедленно запустить другой UIViewController.Это не работает:

-(void) awakeFromNib {
    UIViewController *newcontroller = [[[UIViewController alloc] init] autorelease];
    ...
    [self presentModalViewController:newcontroller animated:YES];
}

Для того, чтобы это работало, я должен сделать afterDelay для метода, например так:

-(void) awakeFromNib {
    [self performSelector:@selector(startNewController) withObject:nil afterDelay:0.5];
    [super init];
}
-(void) startNewController {
    UIViewController *newcontroller = [[[UIViewController alloc] init] autorelease];
    ...
}

Возможно ли получить его вработать без промедления?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

Практически, вы не должны планировать архитектуру своего приложения, которая заставляет вас делать такие реализации. Хотя я могу понять, что бывают случаи, когда у тебя нет выхода ..

Я бы сказал: Лучшее решение для вашего случая - позвонить вашему контроллеру

viewDidAppear

или

viewWillAppear

0 голосов
/ 22 сентября 2011

Вызовите startNewController в вашем методе viewDidAppear, это происходит потому, что ваш viewController не полностью загружен, когда вы пытаетесь представить модальный viewController, поэтому он работает, когда вы ждете.

...