Appeler une méthode de AppDelegate - Objective-C

J'ai essayé d'appeler une méthode existante de mon ViewController.m de AppDelegate.m à l'intérieur de la applicationDidEnterBackground méthode, donc j'ai trouvé ce lien: L'appel de UIViewController méthode à partir de l'app délégué, qui m'a dit de mettre en œuvre ce code:

Dans mon ViewController.m

-(void)viewDidLoad
{
    [super viewDidLoad];

    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    appDelegate.myViewController = self;
}

Dans mon AppDelegate:

@class MyViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (weak, nonatomic) MyViewController *myViewController;

@end

Et dans l'AppDelegate mise en œuvre:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [self.myViewController method];
}

Alors j'ai mis ce code dans mon projet et il a bien fonctionné, mais je n'ai pas compris comment fonctionne le code, ligne par ligne. Ce qui ne l' sharedApplication faire? Pourquoi dois-je d'un délégué au lieu de simplement la création d'une instance de ViewController, comme:

ViewController * instance = [[ViewController alloc] init];
[instance method];

OriginalL'auteur lucas_turci | 2014-05-03