如何通过Storyboard向导航栏添加后退按钮?

我现在非常困惑。 我在网上到处都看到了添加自定义后退按钮的教程,但我似乎无法获得默认的按钮。

在我的MainViewController中,我有performSegueWithIdentifier(...)然后在另一端,我希望导航栏在左侧有后退按钮。 如何实现这一目标? 我似乎无法在线找到任何教程。 我尝试过使用UINavigationController,每当我将故事板中的“导航项目”拖到导航栏时,我的标题就会被替换,但仍然没有后退按钮。

如何添加默认后退按钮?

默认后退按钮是…默认:)。 我会给你一个简单的例子。 使用单个视图创建新项目。 进入故事板,单击单视图控制器,然后转到菜单中的编辑器 – >嵌入 – >导航控制器。 您现在将看到2个视图控制器 – 一个是导航控制器,第二个是原始视图控制器。 您会注意到导航控制器现在是应用程序的初始视图,并且将有一条连接segue的线,表示视图控制器是导航控制器的根视图控制器。 然后在原始View Controller旁边添加另一个UIViewController(通过拖放)。 现在,您将拥有3个视图控制器,导航控制器,原始视图控制器和新的视图控制器。 在原始视图控制器的左上角添加UIButton。 然后控制从按钮拖动到新视图控制器并选择show segue。 如果您现在尝试在模拟器中运行应用程序,您将首先看到原始视图控制器。 点击按钮,您将看到带有后退按钮的新视图控制器! 你甚至不用尝试就会得到后退按钮 – 因为它是默认的。

编辑

根据评论,目标是在用户登录时直接进入MainViewController,但如果用户未登录则转到LogInViewController。

通过转到大纲,选择segue,转到身份检查器并为其指定标识符,将来自LogInViewController的push segue提供给MainViewController标识符。 在LogInViewController的ViewDidAppear中检查用户是否已登录。如果是,则执行segue。 这将在MainViewController上为LogInView控制器提供一个后退按钮。

在我的应用程序中,我做的事情略有不同。

替代方案:我将LogInViewController作为应用程序的初始View Controller,但不要将其嵌入到UINavigationController中。 然后我将MainViewController添加到故事板并将其嵌入导航控制器中。 我建议将它嵌入导航控制器,以防你想要显示其他视图并有一个MainViewController的后退按钮。 将UIButton添加到LogInViewController并控制现在从它拖动到导航控制器。 选择当前的模态segue。 在故事板的轮廓中选择segue,并在属性检查器中,为其命名,如“present MainViewController”。 在LogInViewController的ViewDidAppear方法中,检查用户是否已登录,如果是,则调用[self performSegueWithIdentifier:@"present MainViewController" sender:nil]; 如果用户已登录,则会显示MainViewController,但不会显示。 MainViewController中没有后退按钮,因为它是以模态方式呈现的导航控制器的根视图控制器。 如果您希望左上角按钮是一个将用户注销的按钮,则可以在MainViewController的左侧添加UIBarButton。 现在转到LogInViewController代码并添加- (IBAction) nameOfUnwindSegue : (UIStoryboardSegue *) segue{}返回故事板并控制从此栏按钮拖动到故事板中View Controller顶部的退出图标。 选择nameOfUnwindSegue(你可以随意命名)。 这会创建一个解除视图控制器的展开segue。 您可以通过在storyboard中单击它来获取标识符,转到属性检查器,并为其指定标识符“在MainViewController中的prepareForSegue方法中,您可以检查segue.identifier是否等于标识符,如果是,请调用注销方法。

正如您在问题中所述: “我尝试过使用UINavigationController,每当我将故事板中的’导航项目’拖到导航栏时,我的标题就会被替换,但仍然没有后退按钮。”

如果您将“导航项目”拖动到导航栏上,您将获得您所描述的行为 – 您的“导航项目”将用作标题 ,而不是按钮 。 要在故事板中向导航栏添加自定义后退按钮,而不是向导航栏添加“导航项”,则需要添加“条形按钮项”。