0

これは私にはとても奇妙です。昨日、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」がスローされ、デバッガーに出力されません。GuessWordController の viewDidLoad にも NSLog がありますが、どれも表示されません。

pushViewController を変更して、代わりにストーリーボードで設定したセグエを実行しようとしましたが、うまくいくようです。しかし、アニメーションが欲しくないので、pushViewControllerでやりたかったのです。

この設定方法でアプリ、特に ios5.1 がクラッシュする理由はありますか?

4

1 に答える 1

0

セグエを使用して、アニメーションのないカスタム セグエを作成してみませんか?

あなたがやろうとしていることよりもずっと簡単です。

ここのドキュメントから...

http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomSegues/CreatingCustomSegues.html#//apple_ref/doc/uid/TP40007457-CH16-SW1

この機能を使用できます...

- (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;

これはうまくいくはずです。

于 2013-01-03T20:47:47.837 に答える