applicationDidEnterBackground:/applicationWillEnterForeground: werden nicht aufgerufen

  • applicationDidEnterBackground:/applicationWillEnterForeground: werden nicht aufgerufen

    Hallo,

    wenn meine Anwendung auf einem Gerät, welches Multitasking unterstützt geschlossen wird (eingefroren wird), möchte ich gerne ein Objekt vom View entfernen.

    Wenn meine Anwendung wieder aufgerufen wird, möchte ich eine URL in einem UIWebView aufrufen.

    Quellcode

    1. - (void)applicationDidEnterBackground:(UIApplication *)application {
    2. NSLog(@"%@", @"DidEnterBackground called");
    3. [objekt removeFromSuperview];
    4. }
    5. - (void)applicationWillEnterForeground:(UIApplication *)application {
    6. NSLog(@"%@", @"WillEnterForeground called");
    7. [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://osxentwicklerforum.de"]]];
    8. }

    Die -(void)s werden nie aufgerufen. Log-Einträge werden nie erstellt (auf dem Simulator, Device habe ich noch nicht getestet).
    Ich habe den Code einfach in den ...ViewController gepackt.
  • Wie fwtag schon sagte, gehören diese Methoden ins AppDelegate bzw. in eine Klasse, welche das UIApplicationDelegate Protocol unterstützt.

    Dies kann bei Dir natürlich auch ein ViewController sein, allerdings musst Du dann auch dafür sorgen, dass dieser ViewController per

    Quellcode

    1. [UIApplication sharedApplication].delegate = myViewController;
    zum Delegate von UIApplication wird.

    Es ist jedoch weitaus übersichtlicher eine eigene Klasse für den AppDelegate zu verwenden.