1

ストーリーボード間のフリップ トランジションを設定するのに苦労しています。以下のメソッドが呼び出されるとアプリがクラッシュします。エラーメッセージが表示されます:

[NSPathStore2 setView:]: unrecognized selector sent to instance...

これは私のコードです:

- (void)advanceToNextViewController {

    humptyDumptyViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"firstStoryVC"];
     /*
    [self.navigationController pushViewController:controller animated:YES];
    */
    [UIView beginAnimations:@"animation" context:nil];
    [self.navigationController pushViewController:controller animated:NO]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
    [UIView commitAnimations];


}

これについて何か助けていただければ幸いです。

4

2 に答える 2

3

ストーリーボードを使用しているため。これはより正確です、これを試してください:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"firstStoryVC"];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:NULL];

ただし、必ずビューのidentifierfirstStoryVC」という名前を付けてください。そうしないと、クラッシュして機能しなくなります。

次に、ビューを閉じたい場合:

[self dismissModalViewControllerAnimated:YES];
于 2012-07-09T14:21:28.720 に答える
2

これを試してみてください。タイミングとアニメーションを完全に制御できます。

humptyDumptyViewController *controller = [self.storyboardinstantiateViewControllerWithIdentifier:@"firstStoryVC"];
[UIView  beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[self.navigationController pushViewController:controller animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
于 2012-07-09T11:33:10.433 に答える