首先:我正在使用Swift 5和Xcode 10(iOS 12.0)。
我对Swift / iOS开发很新,并观看了几个关于如何在导航栏中添加“后退”按钮的视频。在所有这些(使用Swift 3)中,一旦应用程序在添加segue(在第一个场景中的项目和第二个场景之间)和两个导航栏的标题之后运行,该按钮就会神奇地出现。
我的应用程序有三个ViewControllers / scenes:
场景2和3之间的segue设置为“show(例如push)”,因为“push”已弃用并且崩溃应用程序。
我手动将两个导航栏添加到导航控制器(2和3),并想要在场景3的导航栏中添加箭头图标。到目前为止我尝试过:
但是在Xcode和模拟器中都没有出现任何东西(甚至不是图像)。
是否仍然可以获得一个自动“后退”按钮,或者你现在必须使用“条形按钮项目”自己添加它?
因此,当您使用视图控制器(如v2,v3)时,这些视图控制器不再与v1位于同一导航堆栈中,这就是为什么它不会自动显示后退按钮。
我不知道为什么说你的推送功能已被弃用,但如果你能抓住截图,我可以告诉你原因。我正在使用Swift5,我可以使用它:show
要回答你的问题,如果你想向v2,v3添加一个后退按钮,那么你必须使用BarButtonItem,并调用self.navigationController?.pushViewController(vc, animated: true)
我强烈建议你不要这样做,如果你的意图是将它们放在同一个导航堆栈中你的v1。
回答我自己的问题:是的,它仍然是(Xcode 10 / Swift 5)可以自动添加“后退”按钮。
自iOS 8以来,self.dismiss(viewController, true)
segues已被弃用,因此请改用Push
!
通常Show (e.g. Push)
segue使用Show (e.g. Push)
,但如果在当前qazxswpoi的左边某个地方(从左到右的场景)有一个Show
,它会自动使用NavigationController
,它还会为下一个场景的NavigationBar添加一个“后退”按钮,或者如果没有NavigationBar,它只是添加栏通常所在的按钮。
我的场景现在看起来像这样:
ViewController
(如果通过库添加)将数据添加到1.和3之间的segues(使用2.)处理与没有NavigationController时的处理有点不同:
Push
(坏)替代NavigationController:
添加一个NavigationController
和一个UITableViewController
并将其链接到上一个视图,就像任何其他按钮一样。
缺点:视图(在我的情况下是“ViewController2”)一旦切换到下一个视图就会重置(因为两个视图不在同一个堆栈上,请参阅上面的jaelee的说明),所以如果你回去你必须设置一切再次。