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];
- Asegúrese de importar su MainViewController en su archivo
.m
delegado de la aplicación - 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()