pushViewController: animated: происходит сбой без полезного вывода
Это так странно для меня. Вчера я думаю, что однажды произошел такой же сбой на устройстве iPhone4 ios6. Сегодня я попытался запустить свое приложение в симуляторе, и оно надежно зависает, когда я вызываю pushViewController. Вот код, который дает сбой.
PFObject *selectedGame = [self.myTurnList objectAtIndex: index];
[self.myTurnList removeObjectAtIndex:index];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
GuessWordController *guessWord = [storyboard instantiateViewControllerWithIdentifier:@"GuessWordController"];
guessWord.game = selectedGame;
//[self performSegueWithIdentifier:@"toGuessWord" sender:self];
[self.navigationController pushViewController:guessWord animated:NO];
return;
Я положил туда кучу NSLog'ов, и все выглядит великолепно вплоть до оператора return. Однако я получаю "EXC_BAD_ACCESS" и не выводить данные в отладчик. У меня также есть NSLog в viewDidLoad моего GuessWordController, и ни один из них не появляется.
Я попытался изменить pushViewController для выполнения перехода, который я настроил с раскадровкой, и это, кажется, работает. Но я хотел сделать это с помощью pushViewController, потому что мне не нужна анимация.
Есть ли какая-то причина, по которой я настроил это так, что приложение зависало, особенно ios5.1?
1 ответ
Почему бы не использовать переход и создать собственный переход без анимации?
Это намного проще, чем то, что вы пытаетесь сделать.
Из документов здесь...
Вы можете использовать эту функцию...
- (void)perform
{
// Add your own animation code here.
[[self sourceViewController] presentModalViewController:[self destinationViewController] animated:NO];
}
Затем удалите все, что у вас есть, и просто используйте [self performSegueWithIdentifier:@"toGuessWord" sender:self];
вместо.
Тогда в prepareForSegue вам понадобится...
GuessWordController *controller = segue.destinationViewController;
controller.game = selectedGame;
Это должно работать.