カールアップアニメーションを使用して、ウィンドウのルートビューコントローラーを別のビューコントローラーに置き換えるためのセグエを実行しようとしています。アイデアは、カールアップアニメーションを使用して、次のSplashViewController
()に遷移する前に数秒間表示されているということです。performSegueWithIdentifier:
LoginViewController
というカスタムUIStoryboardSegue
クラスを作成しましたAnimatedSegue
。オーバーライドされたperform
メソッドのコードは次のとおりです。
- (void)perform
{
UIViewController *source = self.sourceViewController;
UIViewController *destination = self.destinationViewController;
UIWindow *window = source.view.window;
[UIView transitionFromView:source.view
toView:destination.view
duration:1.0
options:UIViewAnimationOptionTransitionCurlUp
completion:^(BOOL finished) {
[window setRootViewController:destination];
}];
}
iOS 6(明らかにiOS 5ではない)では、viewWillAppear:
メソッドがViewControllerで2回呼び出されていることを除いて正常に動作しdestination
ます。移行中に1回目、実行時に2回目と呼ばれるようです[window setRootViewController:destination];
ナビゲーションコントローラーは使いたくないことに注意してください。SplashViewController
移行が終了すると、は(予想どおりに)割り当てが解除されます。
私の問題を解決する方法について何かアイデアはありますか?