カールアップアニメーションを使用して、ウィンドウのルートビューコントローラーを別のビューコントローラーに置き換えるためのセグエを実行しようとしています。アイデアは、カールアップアニメーションを使用して、次の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移行が終了すると、は(予想どおりに)割り当てが解除されます。
私の問題を解決する方法について何かアイデアはありますか?