para mac juegos descargar app aplicaciones iphone objective-c xcode methods delegates

mac - descargar app store para iphone



Llamando al método de control de vista desde el delegado de la aplicación (5)

Intento llamar a un método en el controlador de vista desde el delegado de la aplicación, pero Xcode dice No conocido método de clase para el selector ''myMethodHere''. Aquí está mi código:

AppDelegate.m:

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

MainViewController.m:

-(void) myMethodHere { [..] }


Está intentando llamar a un método de clase cuando quiere llamar a un método de instancia . Si el controlador de vista es el controlador de vista raíz , entonces debería poder llamarlo así:

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

Si no es el controlador de la vista raíz, entonces tendrá que buscar otra forma de obtener la instancia y luego llamar al método como en la última línea anterior.


Intenta escribir

-(void) myMethodHere;

en MainViewController.h


lo intentaré

MainViewController * vc = [[MainViewController alloc]init]; [vc myMethodHere]; [vc release];

  1. Asegúrese de importar su MainViewController en su archivo .m delegado de la aplicación
  2. asegúrese de agregar "myMethodHere" a su archivo MainViewController .h

Si desea acceder a un controlador de vista en un storyboard, puede usar este bloque de código de AppDelegate:

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

Recuerde agregar la importación.


En Swift, puedes escribirlo así

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