按下后退按钮后,从另一个视图控制器更改按钮
Posted
技术标签:
【中文标题】按下后退按钮后,从另一个视图控制器更改按钮【英文标题】:Change button from another view controller once the back button has been pressed 【发布时间】:2018-04-30 05:25:15 【问题描述】:一旦按下导航栏的后退按钮,我试图隐藏/禁用另一个视图控制器的按钮,但我无法弄清楚。基本上,我有一个视图控制器,用户可以在其中添加最多 7 天的锻炼(天数显示为按钮)。每当他们按下一天时,他们就会被带到另一个视图,在那里他们可以选择他们希望在这一天做的练习。一旦他们保存并按下导航栏上的后退按钮,我想在他们刚刚添加锻炼的那一天禁用该按钮,这样他们就不能再按下它了。我将衷心感谢您的帮助!提前致谢!
【问题讨论】:
【参考方案1】:您可以在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
希望这会有所帮助。
【讨论】:
以上是关于按下后退按钮后,从另一个视图控制器更改按钮的主要内容,如果未能解决你的问题,请参考以下文章
按下后退按钮后,navigationController 为 NULL