2013-02-28 59 views
0

关于viewController A我有一个BOOL属性wantAsk设置它(非原子,分配),我通过self.wantsAsk访问。当我继续到另一个视图控制器(vcB)时,我将它的needs_ask 设置为与vcA相同。当它是返回到A的时候,vcB的prepareToSegue方法被称为 ,并且我从seque(segue.destinationViewController)获得了一个指向vcA的指针;但它显示了vcA的所有值都是错误的。特别是,应该(并且是)YES的询问现在是NO。UIViewController的BOOL属性自己更改

我试着在wantsAsk上设置一个watchPoint,但它从来没有被触发。我一直都在使用这个通用设备,并想知道为什么它可能会在这里失败。

+0

你能发表一些代码吗? – Larme 2013-02-28 21:11:40

+1

我怀疑你每次展示它时都会重新实例化视图控制器。 – 2013-02-28 21:12:41

回答

1

如果你继续回到你的视图控制器A,你很可能重新实例化它。所以新的A视图控制器与您的原始A视图控制器不同。

相反,只需跳过准备从B到A的延续。如果您使用的是导航控制器,让它处理返回到A.如果B是模态,请致电dismissViewController

0

假设你只对你的属性使用setter方法(即你不使用_wantsAsk =,或者不管你的合成var是什么),你可以通过使用符号断点来确切地确定它被设置的位置。转到断点窗口并单击符号断点或使用默认Xcode快捷方式按cmd + opt + \从那里添加“setWantsAsk:”(不含引号)。运行程序并查看停止的地方。

Symbolic Debugging

+0

由于H2CO3有它,我正在重新实例化视图控制器。显然这就是赛格所做的。这就是BOOL为NO的原因 - 只是BOOL的默认值。如果我想正确读取值,我需要使用委托。感谢双方的帮助。 – 2013-03-01 19:17:03