2012-07-02 221 views
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]; 


} 

我收到以下錯誤:

* Terminating app due to uncaught exception 'NSInternalInconsistencyException',

reason: 'Tried to pop to a view controller that doesn't exist.'

+0

總是登錄視圖中的第一個,你可以有更多的導航水平? – sergio

回答

1

如果你需要回到你的導航層次結構中的第一個視圖控制器,然後使用:

[self.navigationController popToRootViewControllerAnimated:YES]; 
0

你的問題我不清楚。但我認爲這可以幫助:

推登錄控制器在使用該導航堆棧,

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

self.navigationController pushViewController:loginViewController animated:NO]; 

,並在推屏幕(登錄視圖控制器):

推另一個控制器。然後添加一個後退按鈕。在它的點擊

執行以下命令:

[self.navigationController popViewControllerAnimated:YES];