【发布时间】:2018-04-30 05:25:15
【问题描述】:
一旦按下导航栏的后退按钮,我试图隐藏/禁用另一个视图控制器的按钮,但我无法弄清楚。基本上,我有一个视图控制器,用户可以在其中添加最多 7 天的锻炼(天数显示为按钮)。每当他们按下一天时,他们就会被带到另一个视图,在那里他们可以选择他们希望在这一天做的练习。一旦他们保存并按下导航栏上的后退按钮,我想在他们刚刚添加锻炼的那一天禁用该按钮,这样他们就不能再按下它了。我将衷心感谢您的帮助!提前致谢!
【问题讨论】:
一旦按下导航栏的后退按钮,我试图隐藏/禁用另一个视图控制器的按钮,但我无法弄清楚。基本上,我有一个视图控制器,用户可以在其中添加最多 7 天的锻炼(天数显示为按钮)。每当他们按下一天时,他们就会被带到另一个视图,在那里他们可以选择他们希望在这一天做的练习。一旦他们保存并按下导航栏上的后退按钮,我想在他们刚刚添加锻炼的那一天禁用该按钮,这样他们就不能再按下它了。我将衷心感谢您的帮助!提前致谢!
【问题讨论】:
您可以在VC中简单地编写以下代码,并在后面添加条件
override func viewWillAppear(_ animated: Bool) {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
if appDelegate.isFromPreviousScreen == true{
button.isHidden = true
}
}
注意:- fromPrevious 从 nextVC 返回时设为 true
如果您的问题是离开 secondVC 时如何使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
}
希望这会有所帮助。
【讨论】: