所以在這裏的用戶之一設法告訴我如何通過一個字符串將數據從子視圖控制器傳遞給父視圖控制器。UIlabel問題:應用程序關閉後保留字符串值?
所以現在字符串被傳遞了,但是,我希望該值在應用程序關閉並重新打開後保持顯示在firstViewController上。
該值與NSUserDefaults保存在一起,順便說一下,我看到它在conosole上保存在apps文件夾中,但該值不保存到UILabel顯示屏上。
它只顯示它當我把保存,但然後我關閉並重新打開,它消失,但在NsLog它仍然在應用程序內,但不顯示UILabel。
我該如何解決這個問題?
在我appDelegate.h我有一個
@property (strong, nonatomic) NSString *sharedString;
到secondViewController數據傳遞給firstViewController。
在我secondViewController save方法我有相關的 AppDelegate.h聲明一個函數,它是:
AppDelegate *apiDelegate = [[UIApplication sharedApplication] delegate]
apiDelegate.sharedString = self.textFieldData.text;
而在我的firstViewController我有從第二 的viewController顯示數據的方法:
-(void) viewDidAppear:(BOOL)animated {
AppDelegate *apiDelegate = [[UIApplication sharedApplication] delegate]
self.DisplayData.text = appDelegate.sharedString;
[super viewDidAppear: NO];
有什麼不對心不是該保持完好數據應用程序關閉後或正在 我失去了一些東西?
爲什麼不從NSUserDefaults中填充它?你在綜合appdelegate中的sharedString嗎? – bizsytes
您可能還想更改[super viewDidAppear:NO]; to [super viewDidAppear:animated]; – bizsytes
我會建議你不要使用應用程序委託在類之間傳遞數據。有更好的方法,如公共財產,代表等更好的編碼實踐。 – Andrew