Xcode 6.4 后退按钮消失
Posted
技术标签:
【中文标题】Xcode 6.4 后退按钮消失【英文标题】:Xcode 6.4 back button disappears 【发布时间】:2015-11-22 08:50:47 【问题描述】:我使用的是 Mac OSX El Capitan 10.11.1、Xcode 6.4、ios SDK 8.4。
我已经阅读了这里的几个后退按钮消失的帖子,没有一个与我的问题有关。
我正在为 Uni 作业创建一个购物应用程序。我创建了一个菜单、产品列表、产品详细信息、购物车和结帐故事板。 我可以成功地从菜单导航-> 任何其他,并且后退按钮在那里。我也可以毫无问题地导航菜单 -> 购物车 -> 结帐。但是当我导航菜单 -> 产品列表 -> 产品详细信息 -> 购物车 -> 结帐时,结帐视图会丢失后退按钮。我做了 println(self.navigationController!.navigationBarHidden) 它说是假的。
我没有隐藏任何标题或导航栏或任何东西。 只是这种特殊的方式它失去了后退按钮,我点击它没有检测到的区域并突然出现。
我还注意到默认转换是从右到左滑动到视图中,但是当我进行有问题的导航时,我得到了从下到上的滑动转换。
感谢任何想法。
:编辑:
我尝试执行到购物车的 segue 的代码是
performSegueWithIdentifier("Cart", sender: nil)
我也试过发件人:自我。在此之后,购物车的结帐 segue 就会出现问题。
【问题讨论】:
您是在使用故事板转场还是从代码中展示新的视图控制器? 您使用过时的 Xcode 有什么特别的原因吗? 他们教我们 swift 1.2 和 Xcode 6.4,因为我们开始时 Xcode 7 还没有推出。 【参考方案1】:在我看来,您在结帐屏幕上以模态方式呈现UIViewController
。如果您使用 pushViewController(_:animated:)
将 UIViewController
推送到导航堆栈,导航控制器将为您创建后退按钮。
如果您使用presentViewController(_:animated:completion:)
显示控制器,它将显示在导航控制器的顶部(从底部向上滑动动画)并且不提供返回按钮。您需要创建自己的机制才能返回。最简单的是dismissViewControllerAnimated(_:completion:)
解决您的问题的最简单方法是更改演示样式。将presentViewController(_:animated:completion:)
替换为pushViewController(_:animated:)
,它提供后退按钮,以便您完成大学作业。
【讨论】:
我正在使用 performSegue。我使用从菜单-> 购物车-> 结帐作为较长路线导航的相同方法。只是在较长的路线上它会塞满。 然后在情节提要中检查你的 segues 并检查是否有任何在属性检查器中设置为Present modally
的类型。或者尝试在没有返回按钮的UIViewController
中调用dismissViewControllerAnimater
,以便轻松检查您是否以模态方式呈现。
我会检查它,但听起来情况并非如此,因为我在两个导航路径中都以相同的方式通过 segue,只是当问题出现时,segue 遍历的次数会更长本身。导航路径是 menu->cart->checkout 和 menu->product list->product detail->cart->checkout
this self.dismissViewControllerAnimated(true,completion: nil) 解除控制器并返回购物车。
是的,所以它以某种方式呈现。你有没有公开的项目?猜测可能出了什么问题有点复杂【参考方案2】:
问题是我直接将 segue 链接到视图控制器而不是导航控制器。将 segue 重新连接到导航控制器,一切都恢复正常了。
【讨论】:
以上是关于Xcode 6.4 后退按钮消失的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 后退按钮消失?
如果包含 endDrawer,Flutter 2.0 appbar 后退按钮会消失