Ios 在Swift 3.0中,在没有导航栏的情况下执行刷卡向后导航

Ios 在Swift 3.0中,在没有导航栏的情况下执行刷卡向后导航,ios,swift3,navigation,swipe,viewcontroller,Ios,Swift3,Navigation,Swipe,Viewcontroller,这是我的视图控制器: 我并没有导航栏,但有一个后退按钮,可以让用户返回到上一个视图控制器。我要实现的是滑动以返回。我搜索了很多,但没有找到任何合适的描述帮助。请帮我实现这个 尝试使用“移动的触摸”、“开始”和“结束”代理方法查找您的触摸移动。然后根据x或y位置的偏差,您可以导航用户。您可以尝试以下操作: 添加手势识别器: let swipeLeft = UISwipeGestureRecognizer() swipeLeft.addTarget(self, action: #selector(b

这是我的视图控制器:


我并没有导航栏,但有一个后退按钮,可以让用户返回到上一个视图控制器。我要实现的是滑动以返回。我搜索了很多,但没有找到任何合适的描述帮助。请帮我实现这个

尝试使用“移动的触摸”、“开始”和“结束”代理方法查找您的触摸移动。然后根据x或y位置的偏差,您可以导航用户。

您可以尝试以下操作:

添加手势识别器:

let swipeLeft = UISwipeGestureRecognizer()
swipeLeft.addTarget(self, action: #selector(backSegue) )
swipeLeft.direction = .left
self.view!.addGestureRecognizer(swipeLeft)

@IBAction func backSegue() {
    performSegue(withIdentifier: "backSegue", sender: self)
}
将其添加到要返回的ViewController中:

@IBAction func unwindBack(segue:UIStoryboardSegue) {
    print("Welcome back!!!")
}
在ViewController上,您正在添加滑动识别器,从顶部的退出图标手动从
backSegue()
iAction开始切换。选择ùnwindBack()`outlet并将segue命名为'backSegue'。看看你是否需要更多的细节。

你可以做一件事

1.使用导航控制器,将第一个视图控制器保留为根视图控制器

2.点击或点击任何操作,用户将导航至第二视图控制器,该控制器将具有导航栏

3.在ViewDidDisplay()类中,实现导航栏的隐藏

self.navigationController!。isNavigationBarHidden=false

4.添加背面自定义按钮

5.此过程将使您在刷卡时返回,导航栏也将不存在

6.同时单击自定义后退按钮添加代码

\u=self.navigationController?.popViewController(动画:true)


这将是一种简单的定制方式。

您是否尝试过在手势识别器上添加一个(退出)放松序列?@pesch,如何实现?谢谢Jegadeesh,你能进一步解释一下吗?参考这个链接,我正在努力理解这个objective C的东西,因为我在使用Swift 3.0。如果你不知道objc,请使用这个链接将objc代码转换成Swift。我还没能测试它,如果您遇到问题,请告诉我,我将在Xcode
UIWipegestureRecognitizer
中试用它,它是
UIKit
的一部分,您将以编程方式将其添加到此行的视图中:
self.view!。addGestureRecognizer(swipeLeft)
非常感谢@pesch。成功了。你能给我一些提示使导航到上一个视图控制器动画化吗?简单的方法是选择展开序列并在属性检查器中检查动画。但是,如果您想要更复杂的东西,则需要使用
UIViewControllerAnimatedTransitioning