成功しなかったウェブでの調査の後、私はここに来て私の警告について質問します。
実際、ナビゲーションコントローラーを備えたビューV1があり、V1の読み込みが完了したときにモーダルビューV2をプッシュしたいと考えています。そこで、performSegueWithIdentifier
メソッドを使用します(ストーリーボードを使用しています)。これが私のコードです:
[self performSegueWithIdentifier:@"showConnexionViewSegue" sender:self];
コンパイルすると、次の警告が表示されました。
Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x6849b30>
誰か助けてもらえますか?
-viewWillAppear:
でセグエを実行しているため、対応する2つの-viewWillAppear:
メッセージなしで2つの-viewDidAppear
メッセージが生成されているようです。
-viewDidAppear
でセグエを実行してみてください。
「の外観遷移を開始/終了するための不均衡な呼び出し」
関連する最後のアニメーションが実行される前にアニメーションが開始されたと言います。それで、新しいものをプッシュする前にビューコントローラをポップしていますか?またはルートに飛び出る可能性がありますか?はいの場合は、アニメーションなしで実行してください。つまり、[self.navigationController popToRootViewControllerAnimated:NO];
これで問題が解決するかどうかを確認します。私の場合、これでうまくいきました。
私はこの問題を抱えていましたが、私がやったことはUIViewController
についてですUIButton
からセグエをリンクし、それをnextBtnPressed:
関数なので、実際には1つのボタンを押すことで2つの新しいUIViewControllers
を押していました。それを1つのセグエに限定することで修正しました。しかし、私がこれを2倍にしたことを確認するには、調査が必要でした。
この理由は多種多様であり、コンテキストとプログラミングに非常に固有です。たとえば、私がやっていたことは
私が発見したのは、これらの3つの手順を順番に説明していない場合(混同している場合)、「Unbalanced Calls ...」というエラーが発生することです。また、ビューコントローラーのプッシュの時間を1.4秒未満にすると、メッセージも表示されます。
したがって、プログラム命令のシーケンスとタイミングが正しいことを確認してください。