【问题标题】:Navigation Controller导航控制器
【发布时间】:2012-07-02 08:51:20
【问题描述】:

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

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

【问题讨论】:

  • 登录视图总是第一个,你能有更多的导航级别吗?

标签: ios ipad viewcontroller navigationcontroller


【解决方案1】:

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

[self.navigationController popToRootViewControllerAnimated:YES];

【讨论】:

    【解决方案2】:

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

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

    LoginViewController *loginViewController = [[ LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    
    self.navigationController pushViewController:loginViewController animated:NO];
    

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

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

    执行这个命令:

    [self.navigationController popViewControllerAnimated:YES];
    

    【讨论】:

      猜你喜欢
      • 2020-07-14
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多