3

新しいビューにアクセスした後に古いビューに戻ったときに、このエラーに直面しています (navigationBar の [戻る] ボタンをクリックしたとき)

最初:UINavigationBar searchBar をクリックすると、 ( UINavigationBaris hidden in new View)の代わりに searchBar を含む新しいビューにアクセスしています。

これは、searchBar をクリックした後に新しいビューに移動するコード スニペットです...

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 
{
    BTSViewController *Obj = [[BTSViewController alloc]  initWithNibName:@"BTSViewController" bundle:nil];
    [self.navigationController pushViewController:Obj animated:NO];
}

2番目: searchBarのキャンセルボタンをクリックすると、以前のビューに戻り、 viewWillDisappearメソッドで実行していますsetNavigationBarHidden:NO

これは、UISearchBar の [キャンセル] ボタンをクリックした後に前のビューに戻るコード スニペットです...

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    [self.navigationController popViewControllerAnimated:NO];
}

以前のビューに移動しましたが、非表示になっており、ログにUINavigationBar表示されています。Unbalanced call error...

前もって感謝します !!

4

1 に答える 1

1

ここでは、Two Reasons でこのタイプのエラーが発生します。

  1. UIViewController同時に複数押した場合。

  2. あなたViewController.mviewDidLoad:方法では、派手なアニメーションのすべてがすでに終了しているわけではないため、アプリがクラッシュしました

メソッドにいくつかのファンシーアニメーションコードを追加する場合は、viewDidLoad:そのタイプのコードをに置き換えてviewDidLoad:viewDidAppear:viewControllers のキューも維持することをお勧めします。

この回答がお役に立てば幸いです...

于 2013-05-01T11:48:45.657 に答える