0

在我的应用程序中,我有一个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”而终止应用程序,

原因:“试图弹出一个不存在的视图控制器。”

4

2 回答 2

1

如果您需要返回导航层次结构中的第一个视图控制器,请使用:

[self.navigationController popToRootViewControllerAnimated:YES];
于 2012-07-02T08:58:18.137 回答
0

你的问题我不清楚。但我认为这可能会有所帮助:

使用这个将登录控制器推入导航堆栈,

LoginViewController *loginViewController = [[ LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];

self.navigationController pushViewController:loginViewController animated:NO];

并在推送的屏幕(登录视图控制器)中:

推动另一个控制器。然后添加一个后退按钮。点击它

执行这个命令:

[self.navigationController popViewControllerAnimated:YES];
于 2012-08-01T10:00:15.300 回答