Я хочу, чтобы мое приложение перезагрузило данные, как только приложение переключится с фона на передний план.
Вот мой код:
DataAppDelegate.h
#import <UIKit/UIKit.h>
#import "DataViewController.h"
@class DataViewController;
@interface DataAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
DataViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet DataViewController *viewController;
@end
AppDelegate.m
#import "DataAppDelegate.h"
#import "DataViewController.h"
@implementation DataAppDelegate
@synthesize window;
@synthesize viewController;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Add the view controller's view to the window and display.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"app will resign active");
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"app did enter background");
[DataViewController refresh];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"app will enter foreground");
[DataViewController refresh];
}
DataViewController.h
@interface DataViewController : UIViewController<UIWebViewDelegate, ADBannerViewDelegate> {
IBOutlet UIWebView *webView;
IBOutlet UITextField *addressBar;
IBOutlet UIActivityIndicatorView *activityIndicator;
IBOutlet UILabel *myField2;
IBOutlet UILabel *myField3;
IBOutlet UILabel *myField4;
IBOutlet UILabel *myField5;
IBOutlet UILabel *myField6;
ADBannerView *adView;
BOOL bannerIsVisible;
}
@property(nonatomic,retain) UIWebView *webView;
@property(nonatomic,retain) UITextField *addressBar;
@property(nonatomic,retain) UIActivityIndicatorView *activityIndicator;
@property(nonatomic,assign) BOOL bannerIsVisible;
-(IBAction) goBack:(id)sender;
-(IBAction) goForward:(id)sender;
-(IBAction) refresh:(id)sender;
-(IBAction) goImpressum:(id)sender;
@end
DataViewController.m
- (void) viewDidLoad {
[self loadData];
}
- (void)loadData {
// contains information the ViewController makes use of
}
-(IBAction)refresh:(id) sender {
[self loadData];
}
С этим кодом я получаю два предупреждения:
DataViewController может не отвечать на «+ refresh»
но это работает.
Если я обрежу строку в методе applicationDidEnterBackground: он больше не работает, приложение вылетает
Зачем?
Как мне заполнить applicationDidEnterBackground: метод?
Нужно ли мне забронировать место для моего приложения? как мне это сделать?
Как я могу решить эти предупреждения?
По-видимому, мое приложение не знает метод обновления, но почему он работает в моем примере выше?
Заранее спасибо за помощь:)