iphone Chiamare il metodo del controller di visualizzazione dal delegato dell'app




objective-c xcode (4)

Sto provando a chiamare un metodo nel controller di visualizzazione dal delegato dell'app, ma Xcode dice Nessun metodo di classe noto per il selettore "myMethodHere". Ecco il mio codice:

AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [..]
            [MainViewController myMethodHere];
    [..]
    return YES;
}

MainViewController.m:

-(void) myMethodHere {
     [..]
}

Answer #1

In Swift puoi scriverlo in questo modo

    UIApplication.sharedApplication().keyWindow?.rootViewController?.yourMethodName()

Answer #2

Se si desidera accedere a un controller di visualizzazione su una story board, è possibile utilizzare questo blocco di codice da AppDelegate:

MainViewController *rootViewController = (MainViewController*)self.window.rootViewController;
[rootViewController aMethod];

Ricorda di aggiungere l'importazione.


Answer #3

Stai provando a chiamare un metodo di classe quando vuoi chiamare un metodo di istanza . Se il controller della vista è il controller della vista radice , dovresti essere in grado di chiamarlo così:

UIWindow *window = [UIApplication sharedApplication].keyWindow;
MainViewController *rootViewController = window.rootViewController;
[rootViewController myMethodHere];

Se non è il controller della vista radice, dovrai trovare un altro modo per ottenere l'istanza e quindi chiamare il metodo come nell'ultima riga sopra.


Answer #4

Prova a scrivere

 -(void) myMethodHere;

in MainViewController.h







delegates