Xamarin IOS: Cómo mostrar un control emergente desde el button haga clic

Esto es para iPhone.

Tengo un button y cuando se hace clic, quiero abrir otro control que cubra toda la pantalla. Esta pantalla podría tener una cantidad de controles. Y puedo cerrar esta pantalla haciendo clic en una x en la esquina superior derecha o programáticamente dentro de cualquier evento en la nueva pantalla.

Probablemente podría hacerlo usando un UINavigationController que solo me lleva a una nueva pantalla y tiene un enlace a la pantalla anterior, pero me gustaría preguntar si hay otra opción.

Lo que estoy haciendo es que tengo un map que muestra la location de un usuario desde un pin. Pero si el usuario desea ingresar una nueva location en lugar de utilizar la location del pin, entonces hará clic en un button, irá a una nueva pantalla, escribirá una dirección y hará clic en una dirección "sugerida" de lo que escriba.

Cualquier consejo sería apreciado o un enlace a una muestra de código sería genial

No puedes usar popover para iPhone, creo que puedes usar Modal View.

yourButton.TouchUpInside += (object sender, EventArgs e) => { YourController yourController = new YourController(); yourController.ModalPresentationStyle = UIModalPresentationStyle.FormSheet; this.PresentViewController(yourController, true, null); }; 

Y para cerrar, solo necesita descartar el modal.

Si se trata de una aplicación para iPad, puede utilizar UIPopoverController .

 // myvc is an instance of the view controller you want to display in the popup UIPopoverController pop = new UIPopoverController(myvc); // target is another view that the popover will be "anchonetworking" to pop.PresentFromRect(target.Bounds, target, UIPopoverArrowDirection.Any, true); 

Si se trata de una aplicación de iPhone, no puede utilizar UIPopoverController. Si solo quieres un pequeño cuadro de input con un solo button, puedes usar UIAlertView (esto funciona para iPhone y iPad)

 UIAlertView alert = new UIAlertView(); alert.Title = "Title"; alert.AddButton("OK"); alert.Message = "Please Enter a Value."; alert.AlertViewStyle = UIAlertViewStyle.PlainTextInput; alert.Clicked += (object s, UIButtonEventArgs ev) => { // handle click event here // user input will be in alert.GetTextField(0).Text; }; alert.Show();