2016-07-18 3 views
1

7.3.1に更新されて以来、xcodeはいくつかの警告を生成します: "Objective-Cセレクタで宣言されたメソッドがありません。私は今何をする必要があるか分かりません。これらの警告を生成する2つのラインである: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ではこれを修正するための提案はありません。あなたが手伝ってくれることを願います。ありがとう。

+0

あなたの機能NEXTPAGEはのviewDidLoadの内側にあります。 –

答えて

3

あなたはviewDidLoad()の外にnextPageを配置する必要があり、その後#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)) 
} 
+0

面白い、ありがとう!コードの最後の4行はどうでしょうか?私は彼らを守っていますか? leftSwipe.direction = .LEFT rightSwipe.direction = .RIGHT view.addGestureRecognizer(leftSwipe) view.addGestureRecognizer(rightSwipe) – mojomo

+0

はい、それを維持、細かいthatsの。 :) –

+0

コードを交換した後、}}の一部を削除しました。それは今働く。ありがとうございました! – mojomo

関連する問題