Xamarin IOS:如何通过按钮单击显示弹出控件

时间:2014-05-27 23:47:15

标签: c# ios xamarin

这适用于iPhone。

我有一个按钮,当它被点击时,我想弹出另一个覆盖整个屏幕的控件。此屏幕可以有任意数量的控件。我可以通过单击右上角的x或在新屏幕上的任何事件内以编程方式关闭此屏幕。

我可以通过使用UINavigationController来实现这一点,它只是将我带到一个新的屏幕并且链接回到上一个屏幕,但我想问一下是否还有其他选项?

我正在做的是我有一张地图,显示来自别针的用户位置。但是,如果用户想要键入新位置而不是使用引脚位置,那么他们将单击按钮,转到新屏幕,键入地址并单击“建议”#34;从他们输入的内容中解决。

任何建议都会受到赞赏,或者代码示例的链接会很棒

2 个答案:

答案 0 :(得分:8)

如果它是iPad应用,您可以使用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 "anchored" to
pop.PresentFromRect(target.Bounds, target, UIPopoverArrowDirection.Any, true);

如果它是iPhone应用程序,则无法使用UIPopoverController。如果你只想要一个带有单个按钮的小输入框,你可以使用UIAlertView(适用于iPhone和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();

答案 1 :(得分:8)

你不能使用popover for iPhone,我认为你可以使用Modal View。

yourButton.TouchUpInside += (object sender, EventArgs e) => 
{
    YourController yourController = new YourController();

    yourController.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;
    this.PresentViewController(yourController, true, null);
};

关闭你只需要解雇模态。