2012-03-02 19 views
-2

實際上,當應用程序來自後臺時,需要重新加載數據。但是當我來自後臺時它不會重新加載。我編寫了在viewDidLoad上重新加載數據的方法。當應用程序來自後臺時,數據不會重新加載

所以,我應該在哪裏編寫代碼來解決我的問題?

謝謝...

+0

[這](http://stackoverflow.com/q/8548555/971401)可以幫助你。 – 2012-03-02 11:17:13

+0

@rohan你試圖寫你的代碼在視圖上會出現方法嗎? – Kartik 2012-03-02 11:18:49

+0

@KartikArora:當我來自背景時,我的viewWillAppear方法調用嗎? – Rohan 2012-03-02 11:20:31

回答

1
-(void) viewDidLoad { 

[super viewDidLoad]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethod:) name: UIApplicationWillEnterForegroundNotification object:nil]; 
} 

-(void)myMethod:(id)not { 
// code for save data 
} 

試試這個

+0

@lgor - 謝謝你的回答。我試過你的代碼。但問題是,它啓動時,我的應用程序從背景運行應用程序,但不作爲背景應用程序.. :( – Rohan 2012-03-02 13:43:59

+0

https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/ UIApplication_Class/Reference/Reference.html在這裏看到更多的通知,我認爲你需要UIApplicationDidBecomeActiveNotification – 2012-03-02 15:06:17

+1

或UIApplicationWillEnterForegroundNotification – 2012-03-02 15:07:53

0

要麼你做的UIApplicationDelegate小號

- (void)applicationDidBecomeActive:(UIApplication *)application 

方法,或者你訂閱你的對象到UIApplicationDidBecomeActiveNotification

+0

Aligner - 謝謝你的回覆。但我想知道如何在AppDelegate的 - (void)applicationDidBecomeActive:(UIApplication *)應用程序方法中使用我的viewController的retriveData方法,因爲當我嘗試時,它不顯示viewController的方法? – Rohan 2012-03-02 11:25:58

2

由於KartikArora隱含在上面,所以當應用程序從後臺進入前臺時,不會調用viewDidLoad。所以數據不會被重新加載。

您可以加載每當觀點出現,而不是視圖時加載的數據。但是,它會在每次出現視圖時重新加載數據,這可能不是您想要的。

您也可以在視圖控制器中使用重載方法,當應用程序通過張貼的通知觸發前景時調用該方法。

1

嘗試在應用程序委託文件,將工作

- (void) applicationWillEnterForeground: (UIApplication *) application 
{ 
write your code here 
} 
+0

感謝您的回覆,我想知道如何從AppDelegate調用我的ViewController的方法。?因爲數據檢索代碼是在viewController中。 – Rohan 2012-03-02 13:45:59

+0

然後你必須嘗試查看將顯示方法的視圖控制器。 – 2012-03-02 13:54:32

+0

它會調用Ur方法 – 2012-03-02 13:55:19

相關問題