2013-02-28 32 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