按下后退按钮后,从另一个视图控制器更改按钮

时间:2018-04-30 05:25:15

标签: swift swift4 xcode9.2

一旦按下导航栏的后退按钮,我就试图隐藏/禁用其他视图控制器中的按钮,但我无法弄明白。基本上,我有一个视图控制器,用户可以在其中添加最多7天的锻炼(天数显示为按钮)。每当他们按下一天时,他们就被带到另一个视图,在那里他们可以选择他们希望在那一天做的练习。一旦他们保存并按下导航栏上的后退按钮,我想要禁用他们刚刚添加锻炼的那天的按钮,这样他们就不能再按下它了。我将衷心感谢您的帮助!提前致谢!

1 个答案:

答案 0 :(得分:0)

您只需在VC中编写以下代码并附上条件

即可
override func viewWillAppear(_ animated: Bool) {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
 if appDelegate.isFromPreviousScreen == true{
    button.isHidden = true
   }
}

注意: - fromPrevious从nextVC返回时使其成立

如果您的问题是如何在离开第二个VC时使fromPrevious成立:

然后你需要从那里传递一个值,或者作为初学者使这些东西变得容易我建议你在AppDelegate

中取一个全局变量
 class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    var isFromPreviousScreen:Bool = false
}

在SecondVC中添加以下代码:

override func viewWillDisappear(_ animated: Bool) {
       let appDelegate = UIApplication.shared.delegate as! AppDelegate
        appDelegate.isFromPreviousScreen = true
}

希望这有帮助。