0

私のアプリでは、プッシュおよびポップ ビュー コントローラーを使用して UIViewControlers 間を移動しています。UIViewcontroller A と UIViewController B があります。UIViewcontroller A のボタンをクリックして以下のコードを使用すると、

UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [storybord instantiateViewControllerWithIdentifier:@"editmessage"];
[self.navigationController pushViewController:viewController animated:YES];

UIViewController B に移動できます。B では、A に戻る必要があるクリック時にキャンセル ボタンがあります。使用しているコードは以下のとおりです。

NSLog(@"You did it");
[self.navigationController popViewControllerAnimated:YES];
NSLog(@"You did it again");

UIViewcontroller A のボタンを押すと、UIViewcontroller B に移動でき、B の viewdidload メソッドが実行されます。しかし、ログ ファイルに次のメッセージが表示されます。

2014-01-06 11:40:58.056 padua[5710:60b] View Did Load of editmesage controller
2014-01-06 11:40:58.231 padua[5710:60b] nested push animation can result in corrupted navigation bar
2014-01-06 11:40:58.633 padua[5710:60b] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

キャンセルボタンを押すと、B の viewdidload が再び実行されます。なぜこれが起こっているのかわからず、アプリは空白の背景画像のみが表示される状態になります。以下のログを見つけてください。どこが間違っているのか教えてください。

コード

-(IBAction)cancelMessage:(id)sender{
NSLog(@"You did it");
[self.navigationController popViewControllerAnimated:YES];
NSLog(@"You did it again");

}

ログ

014-01-06 11:40:58.795 padua[5710:60b] Unbalanced calls to begin/end appearance transitions for <editMessageController: 0x1900d440>.
2014-01-06 11:41:04.683 padua[5710:60b] You did it
2014-01-06 11:41:04.708 padua[5710:60b] View Did Load of editmesage controller
2014-01-06 11:41:04.769 padua[5710:60b] You did it again
4

0 に答える 0