在我的申请中,我有navigation controller
。我添加了一个后退按钮以转到登录屏幕(UIViewController)
。如何从navigation controller
?
这是我的后退按钮的代码。
(void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonSystemItemCancel target:self action:@selector(goBacktoLogin)];
self.navigationItem.leftBarButtonItem = backButton;
}
(void) goBacktoLogin
{
LoginViewController *loginViewController = [[ LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
[[ self navigationController] popToViewController:loginViewController animated:YES];
}
我收到以下错误:
* 由于未捕获的异常而终止应用 'NSInternalInconsistencyException',
原因:'试图弹出一个不存在的视图控制器。'
答案 0 :(得分:1)
如果您需要返回导航层次结构中的第一个视图控制器,请使用:
[self.navigationController popToRootViewControllerAnimated:YES];
答案 1 :(得分:0)
我的问题不明确。但我认为这可能会有所帮助:
使用此命令将登录控制器推入导航堆栈,
LoginViewController *loginViewController = [[ LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
self.navigationController pushViewController:loginViewController animated:NO];
并在推送屏幕(登录视图控制器)中:
推送另一个控制器。然后添加一个后退按钮。点击它
执行此命令:
[self.navigationController popViewControllerAnimated:YES];