将 Swift 中的另一个 viewController 的 UIScrollView 偏移量更改为顶部 4
Change UIScrollView Offset to top from another viewController in Swift 4
我有 mainViewController
,里面有 scrollView
,我有 secondViewController
我想在需要时将 scrollView
从 secondViewController
偏移到顶部试试 NSNotificationCenter
给我 ;
: unrecognized selector sent to instance 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)
}
你的 "goTop" 函数的定义是错误的:
而不是
func gotop(){
//do your stuff
}
试试这个:
func gotop(notification : NSNotification){
//do your stuff
}
如果这能解决您的问题,请告诉我。
我在我的项目中使用了以下代码来添加通知:
NotificationCenter.default.addObserver(self, selector: #selector(YourViewController.gotop), name: NSNotification.Name(rawValue: "gotop"), object: nil)
尝试一下它是否适用于您的场景。
检查您的 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)
}
我有 mainViewController
,里面有 scrollView
,我有 secondViewController
我想在需要时将 scrollView
从 secondViewController
偏移到顶部试试 NSNotificationCenter
给我 ;
: unrecognized selector sent to instance 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)
}
你的 "goTop" 函数的定义是错误的:
而不是
func gotop(){
//do your stuff
}
试试这个:
func gotop(notification : NSNotification){
//do your stuff
}
如果这能解决您的问题,请告诉我。
我在我的项目中使用了以下代码来添加通知:
NotificationCenter.default.addObserver(self, selector: #selector(YourViewController.gotop), name: NSNotification.Name(rawValue: "gotop"), object: nil)
尝试一下它是否适用于您的场景。
检查您的 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)
}