这适用于iPhone。
我有一个按钮,当它被点击时,我想弹出另一个覆盖整个屏幕的控件。此屏幕可以有任意数量的控件。我可以通过单击右上角的x或在新屏幕上的任何事件内以编程方式关闭此屏幕。
我可以通过使用UINavigationController来实现这一点,它只是将我带到一个新的屏幕并且链接回到上一个屏幕,但我想问一下是否还有其他选项?
我正在做的是我有一张地图,显示来自别针的用户位置。但是,如果用户想要键入新位置而不是使用引脚位置,那么他们将单击按钮,转到新屏幕,键入地址并单击“建议”#34;从他们输入的内容中解决。
任何建议都会受到赞赏,或者代码示例的链接会很棒
答案 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);
};
关闭你只需要解雇模态。