0

我正在为 UI 使用故事板,我有以下内容:

一个登录窗口,它是 segue 的初始视图。如果登录成功,它将把用户带到另一个视图,该视图不能有返回按钮到登录页面!这是一个UITabBarController,它有自己的导航栏。现在它显示了两个导航栏,并且后退按钮出现在整个应用程序中。

如果我点击后退按钮,它总是将我带到登录视图。有任何想法吗?

在此处输入图像描述

4

4 回答 4

0

你想隐藏整个栏吗?

如果是这样:

[self.navigationController setNavigationBarHidden:YES animated:NO];

或者你只是想隐藏后退按钮?

[self.navigationItem setHidesBackButton:YES animated:NO]
于 2012-05-11T18:52:05.500 回答
0

您应该在故事板模式下向左看导航控制器所在的位置。如果您不想要后退按钮或隐藏任何一个,您可以删除导航栏。

[self.navigationController setNavigationBarHidden:YES animated:NO];

但是,有更好的方法来进行登录屏幕,而不是推送到视图控制器堆栈上,这就是您使用导航控制器所做的事情。

进行登录的一个好方法是呈现一个模态视图控制器,然后在没有导航控制器的情况下将其关闭。这样,如果您已经登录,您将永远无法导航回登录屏幕。只需在应用程序委托中设置一个全局布尔变量,允许整个应用程序知道您已登录,并在之后测试该变量您关闭模式登录页面。

这样你就没有几个你通常不想要的导航控制器

干杯

于 2012-05-11T18:54:22.187 回答
0

当您有一个导航控制器时会发生这种情况,它将状态栏添加到您进入的每个控制器的视图中,并为每个控制器的视图添加一个自己的导航栏。

a)只需摆脱控制器的专用导航栏即可进入

b) 不要使用 navigationcontroller 和模态推送到控制器的视图

[currentController presentModalViewController:controllerYouWantToShow animated:YES]

c)navigationcontroller 的导航栏,但我不建议这样做,因为它会给您带来奇怪的行为并且确实是蛮力,只是不是最好的方法。

于 2012-05-11T18:55:11.157 回答
0

如果您使用导航控制器和 push segue,您将获得一个“返回”按钮,因为这是导航控制器的本质。听起来您想要的(“登录页面不能有后退按钮”)是重置导航控制器的堆栈,使其不包括登录视图控制器。您应该可以使用自定义 segue 来做到这一点(它们很容易编写)。另一种选择是以模态方式呈现登录视图控制器,这是一种非常典型的登录屏幕方式。

于 2012-05-11T21:30:16.953 回答