使用滑动手势更改视图

时间:2015-03-06 07:24:52

标签: ios swift view swipe

我尽可能多地用Google搜索来试图找到它。我是应用程序开发和编程的新手。我希望通过滑动手势让视图返回到上一个视图。

这是我的ViewController.swift

import UIKit

class ViewController: UIViewController {

@IBOutlet var changeView: UIView!

override func viewDidLoad() {
    super.viewDidLoad()
    let recognizer: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeDown:")
    recognizer.direction = .Down
    self.view .addGestureRecognizer(recognizer)

    func swipeDown(recognizer : UISwipeGestureRecognizer) {
        self.performSegueWithIdentifier("HowToPlaySegue", sender: self)
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
   }
}

现在,我也是新Xcode的初学者。如果我记得正确的手势曾经像一个简单的控制按钮 - 拖动到视图,它会工作。

在xcode中,我认为我想要滑动,我有主视图。我做错了什么?

我现在收到的错误。现在我的AppDelegate.swift还没有被触及。我相信这是我的选择器所在,但我不确定,我找不到这些特别的东西。

  

[Swipe_t.ViewController swipeDown:]:无法识别的选择器发送到实例0x7fe94bc7a080   2015-03-05 23:10:15.637 Swipe't [32779:3391684] ***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [Swipe_t.ViewController swipeDown:]:无法识别的选择器发送到实例

1 个答案:

答案 0 :(得分:1)

1)您的swipeDown功能位于viewDidLoad内。不应该在viewDidLoad括号之外吗?

编辑(添加修改后的代码)

override func viewDidLoad() 
{
    super.viewDidLoad()
    let recognizer: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeDown:")
    recognizer.direction = .Down
    self.view.addGestureRecognizer(recognizer)
}

func swipeDown(recognizer : UISwipeGestureRecognizer) 
{
    self.performSegueWithIdentifier("HowToPlaySegue", sender: self)
}

2)其次,虽然我不确定您的用例,但根据您提供的信息,我认为您可以使用UIPageViewController。无需自己实施滑动行为。