我正在为 UI 使用故事板,我有以下内容:
一个登录窗口,它是 segue 的初始视图。如果登录成功,它将把用户带到另一个视图,该视图不能有返回按钮到登录页面!这是一个UITabBarController
,它有自己的导航栏。现在它显示了两个导航栏,并且后退按钮出现在整个应用程序中。
如果我点击后退按钮,它总是将我带到登录视图。有任何想法吗?
我正在为 UI 使用故事板,我有以下内容:
一个登录窗口,它是 segue 的初始视图。如果登录成功,它将把用户带到另一个视图,该视图不能有返回按钮到登录页面!这是一个UITabBarController
,它有自己的导航栏。现在它显示了两个导航栏,并且后退按钮出现在整个应用程序中。
如果我点击后退按钮,它总是将我带到登录视图。有任何想法吗?
你想隐藏整个栏吗?
如果是这样:
[self.navigationController setNavigationBarHidden:YES animated:NO];
或者你只是想隐藏后退按钮?
[self.navigationItem setHidesBackButton:YES animated:NO]
您应该在故事板模式下向左看导航控制器所在的位置。如果您不想要后退按钮或隐藏任何一个,您可以删除导航栏。
[self.navigationController setNavigationBarHidden:YES animated:NO];
但是,有更好的方法来进行登录屏幕,而不是推送到视图控制器堆栈上,这就是您使用导航控制器所做的事情。
进行登录的一个好方法是呈现一个模态视图控制器,然后在没有导航控制器的情况下将其关闭。这样,如果您已经登录,您将永远无法导航回登录屏幕。只需在应用程序委托中设置一个全局布尔变量,允许整个应用程序知道您已登录,并在之后测试该变量您关闭模式登录页面。
这样你就没有几个你通常不想要的导航控制器
干杯
当您有一个导航控制器时会发生这种情况,它将状态栏添加到您进入的每个控制器的视图中,并为每个控制器的视图添加一个自己的导航栏。
a)只需摆脱控制器的专用导航栏即可进入
b) 不要使用 navigationcontroller 和模态推送到控制器的视图
[currentController presentModalViewController:controllerYouWantToShow animated:YES]
c)navigationcontroller 的导航栏,但我不建议这样做,因为它会给您带来奇怪的行为并且确实是蛮力,只是不是最好的方法。
如果您使用导航控制器和 push segue,您将获得一个“返回”按钮,因为这是导航控制器的本质。听起来您想要的(“登录页面不能有后退按钮”)是重置导航控制器的堆栈,使其不包括登录视图控制器。您应该可以使用自定义 segue 来做到这一点(它们很容易编写)。另一种选择是以模态方式呈现登录视图控制器,这是一种非常典型的登录屏幕方式。