2011-10-31 70 views
1

我設置了兩個視圖:ViewControllerOne和ViewControllerTwo。
在我的ViewControllerTwo中,我有一個數字變量(dataValue),我在文本字段中輸入,後來我在計算中將它用作浮點值。在視圖之間來回切換時保留一個值

用戶可以移動到另一個Class視圖(ViewControllerOne),但是當它們返回到ViewControllerTwo時,它們在文本字段中輸入的變量不會保留,並返回到我在ViewControllerTwo.m文件中定義的默認值。

如何讓我的ViewControllerTwo記住我的dataValue?

我@synthesized我dataValueTextField和定義我在ViewControllerTwo.m默認dataValue:

@synthesize dataValueTextField; 
float dataValue = 1.00; 

然後,後來,我已經將我dataValueTextField成float值:

float textFieldData = [dataValueTextField.text floatValue]; 
dataValue = textFieldData; 

但是當我來回切換視圖時,它永遠不會記住dataValue。我需要添加一些東西到我的viewWillDisappear或我需要添加一些東西到我的viewWillDisappear或ViewWillAppear方法?
任何幫助,將不勝感激。我一直在抓着各種嘗試不同的東西而無濟於事。 謝謝。

回答

0

是否有可能在切換視圖時,每次都實際創建一個視圖控制器的新實例?這可能會解釋重置爲默認值的值。另一種可能性是,您將代碼設置爲從事件回調調用的默認值,該事件回調在視圖顯示時觸發。您可以嘗試註銷所有事件處理程序,並查看在切換視圖時要調用的內容。

+0

感謝您的建議。我不認爲是這種情況(我不知道我甚至不知道如何創建視圖控制器的新實例),但我會再次檢查我的代碼。非常感謝您的回覆! – Jupiter869

0

如果您收到內存警告,View可能會被卸載,然後在您返回時重新加載,導致再次調用viewDidLoad。這將導致您的UITextField中的值被重置。

0

dataValue是一個浮點數,這意味着它是一個基元。基元不被保留,並在每個方法結束時丟失。它看起來如何聲明dataValue,它是一個單身?我不是100%關於如何切換視圖時如何處理單身人士,如果他們被釋放或保留。

可能最好把dataValue變成一個實例變量?就像你用dataValueTextField做的那樣。

+0

我會試試這個。希望它能奏效,我的智慧就此結束。謝謝 – Jupiter869