我正在使用SWReveal创建一个滑动菜单。
当应用程序加载时,它会显示一个主页,其中包含应用程序中其他页面的按钮。按下按钮后,执行一个segue&菜单已更新,点亮新选择的页面,以便下次拉出菜单时,它指示用户当前所在的页面。
我正在使用观察者更新菜单,如下所示。一旦加载滑动菜单然后按下按钮,代码就可以正常工作。
然而,当主页首次加载时它无法正常工作,因为尚未创建滑动菜单观察者。
我的问题:有没有办法在主页加载后初始化滑动菜单,以便创建观察者?或者有没有办法接近我没有看到的?
swipeMenu.swift(接收通知):
override func viewDidLoad(){
NotificationCenter.default.addObserver(self, selector: #selector(self.changeGiveaway(notification:)), name: Notification.Name("changeGiveaway"), object: nil)
}
func changeGiveaway(notification: Notification){
print("Change giveway was called")
homeShadow.isHidden = true
yanaLiveVideoShadow.isHidden = true
yanaChatShadow.isHidden = true
yanaShopShadow.isHidden = true
yanaProfileShadow.isHidden = true
horoscopesShadow.isHidden = true
fortuneTellerShadow.isHidden = true
dailyGiveAwayShadow.isHidden = false
}
home.swift(发布通知):
@IBAction func dailyGiveAway(_ sender: Any) {
NotificationCenter.default.post(name: Notification.Name("changeGiveaway"), object: nil)
performSegue(withIdentifier: "giveAway", sender: self)
}
答案 0 :(得分:0)
这里最好的方法可能是使用Delegate。
您可以创建:
len(y_train)
最后在你的ViewController中:
protocol GiveAwayDelegate: class {
func changeGiveAway()
}
var delegate: GiveAwayDelegate?
@IBAction func dailyGiveAway(_ sender: Any) {
self.delegate?.changeGiveAway()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? DestinationViewController {
destination.delegate = self
}
}