iphone - activity - uialertcontroller
Problema con UIActionSheet (10)
Aquí está la versión Swift:
actionSheet.showInView(UIApplication.sharedApplication().keyWindow)
Cuando ejecuto mi aplicación y hago clic en el botón para hoja de cálculo aparece esto:
Presentando una hoja de acción recortada por su supervista. Algunos controles pueden no responder a los toques. En iPhone, pruebe - [UIActionSheet showFromTabBar:] o - [UIActionSheet showFromToolbar:] en lugar de - [UIActionSheet showInView:].
¿Cómo puedo arreglarlo?
Intenté todas las respuestas anteriores en vano. Finalmente, descubrí que la única solución era reducir el número de elementos en la hoja de acción, que se desbordaba.
Otra solución similar, que funcionó para mí con una estructura UIPageViewController -> UINavigationViewController -> TableViewController, es:
[actionSheet showInView:self.view.superview];
Prueba esto, me funcionó a la perfección:
[actionSheet showInView:[UIApplication sharedApplication].keyWindow];
Puede probar [MyActionSheet showInView:super.view];
o si tiene una UITabBar o UIToolbar entonces, como sugiere, puede usar [MyActionSheet showFromTabBar:self.tabBarController.tabBar];
o [MyActionSheet showFromToolBar:self.toolbar];
Recuerde que su barra de herramientas puede ser parte de su controlador de navegación. Puede acceder a él con self.navigationController.toolbar
Resolví mi casi caso por:
YourAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[actionSheet showFromTabBar:delegate.tabBarController.tabBar];
supongamos que utiliza la plantilla TabBarController xCode como inicio.
Se debe resolver el uso de [actionSheet showInView:self.parentViewController.view];
en lugar de self.view
si está utilizando UINavigationViewController
porque este controlador tiene la barra de navegación superior como valor predeterminado.
Utilizar esta:
[actionSheet showInView:self.view.window];
Esto obligará a que la hoja de acción se muestre por encima de las barras de navegación y responda a todos los toques. Sin embargo, tenga en cuenta que si utiliza algunas bibliotecas de menús deslizantes izquierda / derecha, esto puede dar como resultado que actionSheet se presente fuera de la pantalla. Solo prueba...
[sheet showInView:[UIApplication sharedApplication].keyWindow];
sheet.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height-sheet.frame.size.height, [UIScreen mainScreen].bounds.size.width, sheet.frame.size.height);
Esto deberia resolver el problema.