滑动动作没有弹出到上一个控制器 - 我错过了啥?

Posted

技术标签:

【中文标题】滑动动作没有弹出到上一个控制器 - 我错过了啥?【英文标题】:swipe action not popping to previous controller - what am I missing?滑动动作没有弹出到上一个控制器 - 我错过了什么? 【发布时间】:2017-01-12 00:59:54 【问题描述】:

我已将 UI 手势识别器连接到我的 swift 文件,并让此代码弹出到前一个控制器。但是,我没有运气。我错过了什么?

@IBAction func leftswipe(_ sender: Any) 
    [navigationController?.popViewController(animated: true)]

【问题讨论】:

【参考方案1】:

您需要将第一个 viewController 嵌入 UINavigationController 并使用“Show”或“Show Detail”segue 的类型。

【讨论】:

所以我无法在没有导航控制器的情况下使用滑动手势进行导航? 你好。如果你不使用 UINavigationController。然后你使用“Present Modally” segue 的类型。回去你需要使用 [self dismissViewControllerAnimated:YES completion:nil];在左滑功能中【参考方案2】:

尝试打印navigationController,它必须为零。你确定你有第一个 viewController 嵌入在导航控制器中,并且这个 viewcontroller 在导航控制器堆栈中吗?我还注意到您的代码中有[] 括号。不要在 Swift 中使用它。

【讨论】:

感谢您的 [ ] 注释。您的评论提出了另一个问题,我是否需要在我的项目中使用预先存在的导航控制器才能使滑动手势起作用? 是的。如果您尝试从当前视图控制器弹出,则意味着您正在尝试弹回前一个视图控制器 - 意味着它已经在导航堆栈中。所以我的猜测是你的故事板或代码中都没有导航控制器。如果这能回答您的问题,请告诉我。

以上是关于滑动动作没有弹出到上一个控制器 - 我错过了啥?的主要内容,如果未能解决你的问题,请参考以下文章

视图控制器方向没有按预期工作,我错过了啥?

将带有可见导航栏的视图控制器弹出到带有隐藏导航栏的视图控制器时,带有 interactivePopGestureRecognizer 的黑色区域

弹出到根视图控制器,没有表视图的动画崩溃

UINavigationController - 应用程序试图在目标上推送一个 nil 视图控制器,我错过了啥?

弹出到初始视图控制器

标签栏第二次点击弹出到导航控制器 - 如何停止它