vez varios una todos los golpe eliminar cómo contactos contacto como borrar iphone cocoa-touch ios ios4 uiwindow

iphone - varios - ¿Cómo eliminar un UIWindow?



cómo eliminar varios contactos a la vez en iphone (5)

La forma correcta de ocultar una ventana es establecer la propiedad hidden en SÍ. Para eliminarlo de la propiedad de windows de UIApplication, simplemente libera la ventana (en ARC establece todas las referencias a nula).

Por supuesto, usted querría tener otra ventana en su lugar en este momento.

Pensé que era fácil como [myWindow resignKeyWindow] y [self.window makeKeyAndVisible] pero supongo que no ... ¿ [self.window makeKeyAndVisible] qué hacer?

Gracias :)


No invoque -resignKeyWindow directamente, estaba destinado a ser anulado para ejecutar algún código cuando se elimine su UIWindows. Para eliminar la ventana antigua, debe crear una nueva instancia de UIWindow y hacerla -makeKeyAndVisible , la ventana antigua renunciará a su estado clave. En iOS 4 incluso recolectará su antigua ventana UI en la basura , siempre que no tenga ninguna referencia a ella. Hacer esto en iOS 3.x tendría efectos desastrosos. Advertido ya


No puede eliminar la ventana del delegado de la aplicación. Sin embargo, puede eliminar cualquier ventana personalizada creada.

Para quitar la ventana, primero debe proporcionar un reemplazo. Así obtenemos la ventana por defecto.

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

Ahora tenemos acceso a la ventana predeterminada a través de la propiedad de window del delegado de la aplicación.

Ahora obtenga el controlador de navegación original o personalizado. rootViewController auto a rootViewController .

Llamar a makeKeyandVisible elimina cualquier ventana y asigna la ventana del delegado de la aplicación como la ventana clave. ¡Configure rootViewController en el controlador de navegación que acaba de crear y está listo para comenzar!

DEMONavigationController *demoNav = [[DEMONavigationController alloc]initWithRootViewController:self]; [appDelegate.window makeKeyAndVisible]; appDelegate.window.rootViewController = demoNav;


Si tiene una ventana que no sea la ventana de la aplicación, úsela.

let mainWindow = UIApplication.shared.delegate?.window mainWindow??.makeKeyAndVisible()


Tengo el mismo problema, puede que ayude.

Debe destruir todas las referencias fuertes antes de eliminar y desasignar una ventana, especialmente el controlador de control de raíz (rootWindowController). Creo que debajo del código es suficiente para borrar cualquier ventana:

[self.window.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; self.window.rootViewController = nil; [self.window resignKeyWindow]; [self.window removeFromSuperview];