2011-11-22 6 views
26

ウェブ上でのいくつかの調査が成功しなかったため、ここで私の警告に関する質問をします。ストーリーボードでXCode 4のモーダルな方法でビューをプッシュするときの警告の開始/終了のアンバランスな呼び出し

実際には、私はナビゲーションコントローラでビューV1を持っており、V1のロードが完了したらモーダルビューV2をプッシュしたいと思います。 私はperformSegueWithIdentifierメソッドを使用しています(私はストーリーボードを使用しています)。ここで が私のコードです:

[self performSegueWithIdentifier:@"showConnexionViewSegue" sender:self]; 

そして私は、コンパイル、私はこの警告だ:

Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x6849b30> 

を誰も私を助けることができますか?

答えて

57

-viewWillAppear:でセグを実行している可能性がありますので、対応する-viewDidAppearメッセージが1つもない2つの-viewWillAppear:メッセージを生成しているようです。

-viewDidAppearでセグを実行してください。

+0

はい、正確です!できます !どうもありがとう ! – Vinestro

+0

それも私のために解決しました。 – OlivaresF

+5

私は '-viewDidLoad'でsegueを実行することでこれを遭遇しましたが、' performSelector:withObject:afterDelay'の中で 'performSegue'を遅延0で呼び出すことで回避しようとしていましたが、面倒でした。この修正により '-viewDidAppear:'で 'performSegue'を直接呼び出すことができます。ありがとう! –

5

私はこの問題があったが、私が行っていたことは、私はUIButtonからセグエをリンクしてもnextBtnPressed:機能にそれをコード化されていたUIViewController上にあるので、私は実際には1つのボタンを押して上の2つの新しいUIViewControllersを押しました。それを1つのセグに限って固定しました。しかし、私はこれを二重にしたことを調べるために何らかの調査をしました。

1

この理由は多様であり、文脈やプログラミングに非常に特有のものです。例えば、私がやったことは1.4秒(非同期)、それを再生し、サウンドファイルを初期化

  1. 1.4秒続くように調節アニメーションを使って画面上の画像の動きを作ると、
  2. ましたステップ2の後に1.4秒に設定されたタイマーで、viewcontrollerを押します。

私が発見したのは、これらの3つのステップの手順を1つずつ(私はそれらを混ぜて)続けていないと、エラー "Unbalanced calls ..."が発生するということです。また、私がviewcontrollerのプッシュを1.4秒未満にすると、メッセージも表示されます。

したがって、プログラムの手順の順序とタイミングが正しいことを確認してください。

5

「の/終了外観遷移を開始するアンバランスのコールは」最後の関連するアニメーションイマイチが行わ前にアニメーションが開始されたと言います。 それで、新しいコントローラを押す前にView Controllerをポップしていますか? ルートにポップしている可能性がありますか?はいの場合は、アニメーションなしでそうしてください。 つまり[self.navigationController popToRootViewControllerAnimated:NO];

これが問題を解決するかどうかを確認してください。私の場合はこれがトリックでした。

関連する問題