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,请记住将 autorelease 添加到 leftBarButton Item :

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] 然后它将从导航中删除登录屏幕。接受我的ans,如果它发生谢谢你

于 2012-10-24T08:13:01.580 回答