【发布时间】:2019-06-06 06:37:04
【问题描述】:
我有 2 个视图控制器,在 vC1 中声明了一个变量 isShowListAsked : Bool = false,单击地图按钮时它转到 vC2。在 vC2 中有一个名为 List 的按钮。
我要那个 :
单击 List 按钮后,它会返回到 vC1,并且 vC1 变量值应更改为 true。但它仍然是 False。
请帮帮我。
提前致谢。
点击 List 按钮后,我可以返回 vC1 但无法设置 isShowListAsked = true 。我试过 get{} set {}。
在 vC1 中:
class vC1 : UIViewController
{
var isShowListAsked : Bool = false
var IsShowListAsked : Bool {
get {
return isShowListAsked
}
set{
isShowListAsked = newValue
}
}
}
然后点击 In vC2 后:
class vC2 : UIViewController
{
var vc = vC1()
@IBAction func mapListSegmentTapped(_ sender: Any) {
if mapListSegment.selectedSegmentIndex == 1
{
vc.IsShowListAsked = true
}
if mapListSegment.selectedSegmentIndex == 0
{
vc.IsShowListAsked = false
}
}
}
返回后,我在 viewWillappear() 中检查变量值
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print(" isshowListAsked = \(IsShowListAsked) ") // print false
}
预期结果:
print(" isshowListAsked = \(IsShowListAsked) ") // print True
实际结果:
print(" isshowListAsked = \(IsShowListAsked) ") // print false
【问题讨论】:
-
只使用委托协议。
-
问题是你正在创建一个新的 VC1 实例,你需要在你来自的实例上设置值。使用委托。