2012-06-27 2 views
0

Так что я заметил очень странное поведение из своей программы. Ниже приведен упрощенный фрагмент кода, а затем я объясню, что происходит при построении и запуске.Поведение Odd Segue - не стрельба

-(void)viewDidLoad { 
    [super viewDidLoad]; 
    ... 
    if (self.sampleBool) { 
     [self performSegueWithIdentifier:@"mySegue" sender:self]; 
    } 
    else { 
     // do stuff 
    } 
} 
... 
-(IBAction)myMethod:(UITapGestureRecognizer*)sender { 
    ... 
    [self performSegueWithIdentifier:@"mySegue" sender:self]; 
} 

инициирует переход через UITapGestureRecognizer штрафа - так что я знаю, что переход связан правильно. Однако, когда self.sampleBool является истинным, а executeSegueWithIdentifier вызывается в viewDidLoad, сеанс не срабатывает.

У кого-нибудь есть догадки? Любая помощь или совет приветствуются.

Благодаря

ответ

0

Попробуйте использовать viewWillAppear или viewDidAppear событие и посмотреть, если он работает. Мой Угадай в том, что segues в viewDidload может не иметь значения, так как вещи не полностью подключены.

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

+0

Он срабатывает при использовании 'viewDidAppear'. Это так странно. Казалось бы, ваше предположение может наступить! Благодаря! –

0

Если вы попытаетесь нажать еще один ViewController внутри ViewDidLoad, у вас возникнет проблема, потому что в viewDidLoad диспетчер представлений еще не готов! Просто пытается использовать viewWillAppear или viewDidappear.

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