我在Mac OSX El Capitan 10.11.1,Xcode 6.4,iOS SDK 8.4上。
我已经阅读了几个后退按钮消失的帖子,这些都与我的问题无关。
我正在为Uni作业创建购物应用。我创建了菜单,产品列表,产品详细信息,购物车和结帐故事板。 我可以从菜单中成功导航 - >任何其他和后退按钮就在那里。我可以导航菜单 - >购物车 - >结帐没有问题。但是当我导航菜单时 - >产品清单 - >产品详情 - >购物车 - >结账结账视图丢失后退按钮。我做了println(self.navigationController!.navigationBarHidden)并且说错了。
我没有隐藏任何标题或导航栏或任何东西。 只是这种特殊的方式它失去了后退按钮,我点击它没有检测到并突然出现的区域。
我还注意到默认转换是从右到左滑入视图,但是当我进行有问题的导航时,我得到一个从下到上的幻灯片转换。
任何想法都表示赞赏。
:编辑:
我试图将segue执行到购物车的代码是
performSegueWithIdentifier("Cart", sender: nil)
我也试过发件人:自己。在此之后,购物车的Checkout segue就会出现问题。
答案 0 :(得分:1)
在我看来,就像你在结帐屏幕上以模拟方式呈现UIViewController
一样。如果您使用UIViewController
将pushViewController(_:animated:)
推送到导航堆栈,导航控制器将为您创建后退按钮。
如果您使用presentViewController(_:animated:completion:)
呈现控制器,它将显示在导航控制器的顶部(从下向上滑动动画),并且不提供后退按钮。您需要创建自己的机制才能返回。最简单的是dismissViewControllerAnimated(_:completion:)
解决问题的最简单方法是更改呈现方式。将presentViewController(_:animated:completion:)
替换为提供后退按钮的pushViewController(_:animated:)
,以便您完成单一任务。
答案 1 :(得分:1)
问题在于我将segue直接链接到视图控制器而不是导航控制器。将segue重新连接到导航控制器,一切都在世界上。