我有一个MasterVC,其UIImageView
的alpha值为0,按UIButton
可以将alpha切换为1。按下相同的按钮将推动SecondaryVC在MasterVC上以“ Over Current Context”显示图像。
如果关闭了SecondaryVC,我想将MasterVC的UIImageView
的alpha设置回0,但是很难找到如何仅使用dismiss返回MasterVC来调用函数的方法。
这是我的按钮,用于设置Alpha并推送至SecondaryVC。因为我听说过使用segue会导致内存问题,所以似乎无法使用它。
我尝试使用协议,但是在CGFloat上运行不佳。
@IBOutlet weak var background: UIImageView!
@IBOutlet weak var backgroundTable: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
background.image = lightBG
backgroundTable.image = tableBG
backgroundTable.alpha = 0
}
@IBAction func unknownProperties(_ sender: UIButton) {
UIView.animate(withDuration: 1.0, animations:{
self.backgroundTable.alpha = 1
})
getOverlay()
}
最佳答案
使用NotificationCenter
可能是这里的解决方案。
步骤1:在viewDidLoad
处添加观察者
NotificationCenter.default.addObserver(
self,
selector: #selector(self.functionToExecute),
name: NSNotification.Name.init("UpdateBackgroundTableAlpha"),
object: nil
)
步骤2:在关闭SecondaryVC之前发布通知。
NotificationCenter.default.post(name: NSNotification.Name.init("UpdateBackgroundTableAlpha"), object: nil)
步骤3:在MasterVC类范围内定义
functionToExecute
。func functionToExecute(){
print("Make BackgroundTable Great Again!")
}
关于ios - 如何通过关闭推送的VC来执行MasterVC上的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48535075/