繁体   English   中英

没有用Objective-C选择器声明的方法('nextPage')

[英]No method declared with Objective-C selector ('nextPage')

自从我更新到7.3.1后,xcode创建了一些警告:“没有用Objective-C选择器声明的方法('nextPage')”。 我不确定我现在需要做什么。 这两行产生警告:

let leftSwipe = UISwipeGestureRecognizer (target: self, action: Selector("nextPage"))
let rightSwipe = UISwipeGestureRecognizer (target: self, action: Selector("nextPage"))

这是整个VC代码:

import Foundation
import UIKit
class VC1 : UIViewController {

class MyCustomNavigationController: UINavigationController {

    override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {

        return (visibleViewController?.supportedInterfaceOrientations())!

    }


    override func shouldAutorotate() -> Bool {

        return (visibleViewController?.shouldAutorotate())!

    }

}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {

    return UIInterfaceOrientationMask.Portrait

}

override func shouldAutorotate() -> Bool {

    return true

}

override func viewDidLoad() {

    super.viewDidLoad()

    func nextPage(sender:UISwipeGestureRecognizer) {

        switch sender.direction {



        case UISwipeGestureRecognizerDirection.Left:

            print("SWIPED LEFT", terminator: "")

            self.performSegueWithIdentifier("seg1", sender: nil)

        default:

            break

        }


    let leftSwipe = UISwipeGestureRecognizer (target: self, action: Selector("nextPage"))

    let rightSwipe = UISwipeGestureRecognizer (target: self, action: Selector("nextPage"))


    leftSwipe.direction = .Left

    rightSwipe.direction = .Right



    view.addGestureRecognizer(leftSwipe)

    view.addGestureRecognizer(rightSwipe)

}

    }

}

我在研究时发现了这个:

选择器(“funcName”)已更改为#selector(ClassName.funcName)

我想“funcName”将是nextPage,但我必须设置为ClassName?

不幸的是,xcode没有提供任何解决此问题的建议。 希望你能帮忙。 谢谢。

您需要将nextPage放在viewDidLoad() ,然后#selector(VC1.nextPage)

func nextPage(sender:UISwipeGestureRecognizer) {

    switch sender.direction {
        case UISwipeGestureRecognizerDirection.Left:

        print("SWIPED LEFT", terminator: "")

        self.performSegueWithIdentifier("seg1", sender: nil)

       default:

        break

    }
}

override func viewDidLoad() {

   super.viewDidLoad()

   let leftSwipe = UISwipeGestureRecognizer (target: self, action:  #selector(VC1.nextPage))

   let rightSwipe = UISwipeGestureRecognizer (target: self, action:  #selector(VC1.nextPage))
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM