2016-06-30 1 views
1

Я загружаю FrontViewController s взгляд на мой текущий контроллер зрения MyVideosViewController.UITapGesture не бросается в глаза

Я добавил 2 наблюдателей уведомления на мой MyVideosViewController viewdidload()

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyVideosViewController.playLatestvideoClick), name: latestKey, object: nil) 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyVideosViewController.playMostWatchedvideoClick), name: mostKey, object: nil) 

в моем FrontViewController

//MARK: -Gesture Play 
func playLatestvideoClick(sender: UITapGestureRecognizer) 
{ 
    print("----- PLAY GESTURE TAPPED ------") 
    let imgVw = sender.view as! UIImageView 
    api.selectedVideoID = String(imgVw.tag) 
    let homeviewcontroller = self.storyboard?.instantiateViewControllerWithIdentifier("MYVIDEO") as? MyVideosViewController 

    NSNotificationCenter.defaultCenter().postNotificationName(self.latestKey, object: nil) 
} 

func playMostWatchedvideoClick(sender: UITapGestureRecognizer) 
{ 
    print("----- PLAY GESTURE TAPPED ------") 
    let imgVw = sender.view as! UIImageView 
    api.selectedVideoID = String(imgVw.tag) 
    let homeviewcontroller = self.storyboard?.instantiateViewControllerWithIdentifier("MYVIDEO") as? MyVideosViewController 

    NSNotificationCenter.defaultCenter().postNotificationName(self.mostKey, object: nil) 
} 

Это, как я установил thegesture действие в FrontViewController

let tapPlay = UITapGestureRecognizer.init(target: self, action: (#selector(FrontViewController.playLatestvideoClick(_:)))) 
     self.imgVideo.addGestureRecognizer(tapPlay) 
     self.imgVideo.userInteractionEnabled=true 

Но любой из этих методов не является пищей когда я использую жест. В чем причина этого? Пожалуйста, помогите мне.

UPDATE

Его, как это. если я перезагружу этот MyVideoViewController, он работает в первый раз. то ее не работает

+0

'let tapPlay = UITapGestureRecognizer (target: self, action: Selector (" playLatestvideoClick: "))' Попробуйте с этим –

+2

@EktaMakadiya OP использует swift 2.2 или выше, так что это не сработает. –

+0

Вот так. если я перезагружу этот MyVideoViewController, он работает в первый раз. то его не работает – user1960169

ответ

0

Пожалуйста, попробуйте, как показано ниже код:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyVideosViewController.playLatestvideoClick(_:)), name: latestKey, object: nil) 
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyVideosViewController.playMostWatchedvideoClick(_:)), name: mostKey, object: nil) 

Вам необходимо пройти отправителя, как этот (_:) то он будет вызывать этот метод.

Надеюсь, это вам поможет.

+1

Это неправильный ответ. Он не показывал нам этих селекторов, они находятся в классе MyVideosViewController, так что кажется правильным, также проблема возникает более жестокой. –

+0

Мой метод касания жест также не срабатывает, – user1960169

+0

Я думаю, что вы должны написать его как 'UITapGestureRecognizer.init (target: self, action: #selector (FrontViewController.playLatestvideoClick (_ :)))' –