Выполнить переход при запуске viewcontroller

У меня есть экран входа в систему, и я хочу определить, вошел ли пользователь в систему, и в конечном итоге открыть модальное окно.

Я создал собственный переход, который показывал модальное окно без анимации.

@implementation NonAnimatedSegue

-(void) perform {

    [self.sourceViewController presentModalViewController:self.destinationViewController animated:NO];

}

Дело в том, что вызов этого перехода из viewDidLoad или viewWillAppear не дает никакого эффекта. Если я вызову его из viewDidAppear, экран входа в систему некоторое время будет мерцать, прежде чем откроется модальное окно.

Есть идеи, как это решить?


person Petr Pavlík    schedule 28.04.2012    source источник
comment
он должен работать из viewWillAppear   -  person Ankit Srivastava    schedule 28.04.2012
comment
@AnkitSrivastava Это не работает, вы получаете предупреждение о попытке представить представление B в представлении A, чье представление не находится в иерархии окон!   -  person Declan McKenna    schedule 26.06.2013
comment
Вам следует рассмотреть возможность наличия двух раскадровок: одну для потока, связанного с входом в систему, и другую для обычного потока. Следует проверить статус входа в appDelegate и создать экземпляр раскадровки соответственно.   -  person RJR    schedule 06.11.2013


Ответы (1)


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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    /*stuff*/
    /*get the view controller from storyboard/nib*/
    [self.window setRootViewController:CorrectViewController];
}

Он не будет отображать модальное представление, а просто покажет логин при запуске.

person utahwithak    schedule 28.04.2012