如何通过解除推送的VC来执行MasterVC上的函数调用?

时间:2018-01-31 05:31:18

标签: ios swift uiimageview

我有一个MasterVC,其UIImageView的alpha为0,在按UIButton时将alpha切换为1。按下相同的按钮,按下“过电流上下文”,通过MasterVC显示图像的SecondaryVC。

如果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()
}

1 个答案:

答案 0 :(得分:0)

使用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!")
}