2

最初のビューがログイン画面であり、ユーザー名とパスワードがアプリケーション全体の認証に使用されるアプリケーションがあります。認証プロセスで問題が発生した場合、ユーザーはログイン画面に戻りますが、ユーザーがナビゲーションバーの戻るボタンを押したときに問題が発生した場合、アプリケーションはログイン画面を正しく表示しますが、ナビゲーションバーは表示されます表示されるはずのビューからボタンが表示されます。

例:ユーザーがビューBの戻るボタンを押し、アプリケーションがビューAを表示するはずなのに、問題が発生した場合、アプリケーションはログイン画面を表示しますが、ナビゲーションバーはビューAのものです。

私はいくつかのことを試しましたが、最も近づいたのは次のとおりです。ビューBのViewWillDisappearで:

        NSArray * nc = [self.navigationController viewControllers];
    [self.navigationController popToViewController:[nc objectAtIndex:0] animated:YES];

そして、それは上記の結果をもたらしました。

4

2 に答える 2

2

LoginController で viewWillAppear: メソッドをオーバーライドし、必要に応じてナビゲーション バー ボタンを設定します。

-(void) viewWillAppear:(BOOL) animated
{
  [super viewWillAppear:animated];

  //Example :
  self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"AText" style:UIBarButtonItemStyleBordered target:self action:@selector(anAction)];
}

ARC を使用しない場合は、 leftBarButton アイテムに autorelease を追加することを忘れないでください。

self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"AText" style:UIBarButtonItemStyleBordered target:self action:@selector(anAction)] autorelease];
于 2012-10-24T08:06:32.940 に答える
-1

ログインに成功した後、ログイン画面を削除します[self.window removeFromsuperview]次に、ログイン画面をナビゲーションから削除します。それが起こったら私の答えを受け入れてくださいありがとう

于 2012-10-24T08:13:01.580 に答える