Измените UIScrollView Offset на top от другого viewController в Swift 4

Я имею mainViewController и внутри есть scrollView и я имею secondViewController я хочу измениться scrollView смещение к вершине от secondViewController когда я хочу попробовать это с NSNotificationCenter дает мне;

: нераспознанный селектор отправлен на экземпляр 0x7ff83e024200'

Как я могу это исправить? Мои коды ниже.

mainViewController

       override func viewDidLoad() {
            super.viewDidLoad()

            NotificationCenter.default.addObserver(self, selector: "gotop:", name: NSNotification.Name(rawValue: "gotop"), object: nil)

    }

  func gotop(){
         scrollView.setContentOffset(CGPoint(x:0, y:0), animated: false)
    }

secondViewController

@IBAction func goButton (sender : UIButton){

        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "gotop"), object: nil)


    }

3 ответа

Решение

Проверьте ваш код addObserver, селектор должен иметь подпись ниже

NotificationCenter.default.addObserver(self, selector: #selector(MainViewController.goTop(notification:)), name: Notification.Name("gotop"), object: nil)

Обработчик метода для полученного уведомления:

func goTop(notification: Notification){
   scrollView.setContentOffset(CGPoint(x:0, y:0), animated: false)
}

Для размещения уведомления

NotificationCenter.default.post(name: Notification.Name("gotop"), object: nil)

Удалить уведомление в дените

deinit {
  NotificationCenter.default.removeObserver((self, name: Notification.Name("gotop"), object: nil)
}

Я использовал приведенный ниже код в своем проекте, чтобы добавить уведомление:

NotificationCenter.default.addObserver(self, selector: #selector(YourViewController.gotop), name: NSNotification.Name(rawValue: "gotop"), object: nil)

Попробуйте, если это работает в вашем сценарии.

Неверно определение вашего "goTop":

вместо

func gotop(){
  //do your stuff
}

попробуй это:

func gotop(notification : NSNotification){
   //do your stuff
}

дайте мне знать, если это решит вашу проблему.

Другие вопросы по тегам