我有一个应用程序,其中第一个视图是登录屏幕,用户名和密码用于在应用程序周围进行身份验证。如果在身份验证过程中出现问题,用户将被退回到登录屏幕,但如果用户按下导航栏中的后退按钮时出现问题,则应用程序显示登录屏幕正确,但导航栏将显示它应该显示的视图中的按钮。
示例:如果用户按下View B上的后退按钮,并且应用程序应显示View A,但出现问题,应用程序将显示登录屏幕,但导航栏是来自View A的导航栏。
我尝试了几件事,但最接近的是: 在视图B的ViewWillDisappear中:
NSArray * nc = [self.navigationController viewControllers];
[self.navigationController popToViewController:[nc objectAtIndex:0] animated:YES];
它给出了上述结果。
答案 0 :(得分: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];
答案 1 :(得分:-1)
成功登录后删除登录屏幕 [self.window removeFromsuperview] 然后它将从导航中删除登录屏幕。 如果它发生了,请接受我的回复谢谢你