Respuestas:
Sí, a UIAlertView
es probablemente lo que estás buscando. Aquí hay un ejemplo:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection"
message:@"You must be connected to the internet to use this app."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
Si desea hacer algo más elegante, digamos que muestre una IU personalizada en su UIAlertView
, puede subclasificar UIAlertView
y colocar componentes de IU personalizados en el init
método. Si desea responder a una pulsación de botón después de que UIAlertView
aparezca un , puede configurar lo delegate
anterior e implementar el - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
método.
También es posible que desee ver el UIActionSheet
.
Diferentes personas que vienen a esta pregunta quieren decir cosas diferentes por un cuadro emergente. Recomiendo leer la documentación de Vistas temporales . Mi respuesta es en gran medida un resumen de esta y otra documentación relacionada.
Las alertas muestran un título y un mensaje opcional. El usuario debe reconocerlo (una alerta de un botón) o hacer una elección simple (una alerta de dos botones) antes de continuar. Crea una alerta con un UIAlertController
.
Vale la pena citar las advertencias y consejos de la documentación sobre la creación de alertas innecesarias.
Notas:
UIAlertView
quedó en desuso. Debe usar UIAlertController
para crear alertas ahora.Las hojas de acción le dan al usuario una lista de opciones. Aparecen en la parte inferior de la pantalla o en una ventana emergente, dependiendo del tamaño y la orientación del dispositivo. Al igual que con las alertas, a UIAlertController
se usa para hacer una hoja de acción. Antes UIActionSheet
se usaba iOS 8, pero ahora la documentación dice:
Importante:
UIActionSheet
está en desuso en iOS 8. (Tenga en cuenta queUIActionSheetDelegate
también está en desuso). Para crear y administrar hojas de acción en iOS 8 y versiones posteriores, utilice en su lugarUIAlertController
con unpreferredStyle
deUIAlertControllerStyleActionSheet
.
Una vista modal es una vista autónoma que tiene todo lo que necesita para completar una tarea. Puede o no ocupar la pantalla completa. Para crear una vista modal, use a UIPresentationController
con uno de los estilos de presentación modal .
Ver también
Un Popover es una vista que aparece cuando un usuario toca algo y desaparece cuando lo toca. Tiene una flecha que muestra el control o la ubicación desde donde se realizó el toque. El contenido puede ser casi cualquier cosa que pueda poner en un controlador de vista. Haces un popover con a UIPopoverPresentationController
. (Antes de iOS 8, UIPopoverController
era el método recomendado).
En el pasado, los popovers solo estaban disponibles en el iPad, pero a partir de iOS 8 también puedes obtenerlos en un iPhone (mira aquí , aquí y aquí ).
Ver también
Las notificaciones son sonidos / vibraciones, alertas / pancartas o distintivos que notifican al usuario de algo, incluso cuando la aplicación no se está ejecutando en primer plano.
Ver también
En Android, un Toast es un mensaje corto que se muestra en la pantalla durante un corto período de tiempo y luego desaparece automáticamente sin interrumpir la interacción del usuario con la aplicación.
Las personas que provienen de un fondo Android quieren saber cuál es la versión iOS de un Toast. Puede encontrar algunos ejemplos de estas preguntas aquí , aquí , aquí y aquí . La respuesta es que no hay equivalente a un Toast en iOS . Varias soluciones alternativas que se han presentado incluyen:
UIView
Sin embargo, mi consejo es seguir con las opciones de interfaz de usuario estándar que ya vienen con iOS. No intentes hacer que tu aplicación se vea y se comporte exactamente igual que la versión de Android. Piense en cómo volver a empaquetarlo para que se vea y se sienta como una aplicación de iOS.
Desde el lanzamiento de iOS 8, UIAlertView
ahora está en desuso; UIAlertController es el reemplazo.
Aquí hay una muestra de cómo se ve en Swift:
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertActionStyle.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
Como puede ver, la API nos permite implementar devoluciones de llamada tanto para la acción como cuando presentamos la alerta, ¡lo cual es bastante útil!
Actualizado para Swift 4.2
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertAction.Style.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
Actualizado para iOS 8.0
Desde iOS 8.0, deberá usar UIAlertController de la siguiente manera:
-(void)alertMessage:(NSString*)message
{
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"Alert"
message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction
actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
}
Donde self en mi ejemplo es un UIViewController, que implementa el método "presentViewController" para una ventana emergente.
David
Para Swift 3 y Swift 4:
Como UIAlertView está en desuso, existe una buena manera de mostrar Alert en Swift 3
let alertController = UIAlertController(title: NSLocalizedString("No network connection",comment:""), message: NSLocalizedString("connected to the internet to use this app.",comment:""), preferredStyle: .alert)
let defaultAction = UIAlertAction(title: NSLocalizedString("Ok", comment: ""), style: .default, handler: { (pAlert) in
//Do whatever you want here
})
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
Obsoleto :
Esta es la versión rápida inspirada en la respuesta comprobada:
Mostrar AlertView:
let alert = UIAlertView(title: "No network connection",
message: "You must be connected to the internet to use this app.", delegate: nil, cancelButtonTitle: "Ok")
alert.delegate = self
alert.show()
Agregue el delegado a su controlador de vista:
class AgendaViewController: UIViewController, UIAlertViewDelegate
Cuando el usuario haga clic en el botón, se ejecutará este código:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
Aunque ya escribí una descripción general de los diferentes tipos de ventanas emergentes, la mayoría de las personas solo necesitan una Alerta.
class ViewController: UIViewController {
@IBAction func showAlertButtonTapped(_ sender: UIButton) {
// create the alert
let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertController.Style.alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
}
Mi respuesta más completa está aquí .
Aquí está la versión de C # en Xamarin.iOS
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();