![](/img/trans.png)
[英]Swift/XCode 6.4: add back button to navigation controller in navigation bar
[英]Xcode 6.4 back button disappears
我使用的是 Mac OSX El Capitan 10.11.1、Xcode 6.4、iOS SDK 8.4。
我已经阅读了这里的几个后退按钮消失的帖子,但没有一个与我的问题有关。
我正在为 Uni 作业创建一个购物应用程序。 我创建了一个菜单、产品列表、产品详细信息、购物车和结账故事板。 我可以从菜单成功导航 - >任何其他,后退按钮就在那里。 我也可以导航菜单 -> 购物车 -> 结帐也没有问题。 但是当我导航菜单 -> 产品列表 -> 产品详细信息 -> 购物车 -> 结帐时,结帐视图失去了后退按钮。 我做了 println(self.navigationController!.navigationBarHidden) 它说假。
我没有隐藏任何标题或导航栏或任何东西。 只是这种特殊的方式它失去了后退按钮,我点击它没有检测到的区域并突然出现。
我还注意到默认的过渡是从右向左滑入视图,但是当我进行有问题的导航时,我得到了从底部到顶部的幻灯片过渡。
任何想法表示赞赏。
:编辑:
我试图对购物车执行 segue 的代码是
performSegueWithIdentifier("Cart", sender: nil)
我也试过发件人:自我。 在此之后, Cart's Checkout segue 出现问题。
在我看来,您正在以模态方式为结帐屏幕呈现UIViewController
。 如果您使用pushViewController(_:animated:)
将UIViewController
推送到导航堆栈,导航控制器将为您创建后退按钮。
如果您使用presentViewController(_:animated:completion:)
呈现控制器,它将呈现在导航控制器的顶部(从底部向上滑动动画)并且不提供后退按钮。 您需要创建自己的机制才能返回。 最简单的一个是dismissViewControllerAnimated(_:completion:)
解决问题的最简单方法是改变演示风格。 用pushViewController(_:animated:)
替换presentViewController(_:animated:completion:)
,它提供后退按钮,这样你就可以完成你的 uni 分配。
问题是我将 segue 直接链接到视图控制器而不是导航控制器。 将 segue 重新连接到导航控制器,一切又正常了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.