访问UIAlertView的ViewController

时间:2019-08-15 17:47:11

标签: c# xamarin.ios uialertview

var message = new UIAlertView();
message.AlertViewStyle = UIAlertViewStyle.SecureTextInput;
message.Title = "Enter Your Password";
message.AddButton("Login");
message.CancelButtonIndex = 0;
message.BackgroundColor = UIColor.FromRGB(139, 67, 103);
message.Show();
message.Clicked += Message_Clicked;

你好这是我的代码,用于创建带有按钮和文本框的UIAlertView。我正在尝试访问它的Controller,以便可以操纵它的子视图。我该怎么办?

2 个答案:

答案 0 :(得分:0)

不能。该API为deprecated。您应该使用UIAlertController

答案 1 :(得分:0)

来自官方document

  

从iOS 8开始,UIAlertController已完成替换UIActionSheet和U​​IAlertView的功能,而这两个功能现已弃用。

     

与被替换的类是UIView的子类不同,UIAlertController是UIViewController的子类。

最简单的警报添加了TextField,如以下屏幕截图所示:

enter image description here

显示简单警报的代码如下:

var alertController = UIAlertController.Create("Title", "Pleasr input your name", UIAlertControllerStyle.Alert);

//Add Text
alertController.AddTextField(texfield => { texfield.Placeholder = "Please Input "; });

//Add Action
alertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, alert => {
    UITextField envirnmentNameTextField = alertController.TextFields[0];
    Console.WriteLine("Your input is :" + envirnmentNameTextField.Text);
}));

// Present Alert
PresentViewController(alertController, true, null);

如果要更改消息或标题的颜色,可以使用NSMutableAttributedString来实现。

//set color to meesage NSForegroundColorAttributeName

UIStringAttributes attrTextColor = new UIStringAttributes();
attrTextColor.ForegroundColor = UIColor.Purple;

NSMutableAttributedString messageText = new NSMutableAttributedString("Please input your name");
messageText.AddAttributes(attrTextColor, new NSRange(0, 6));
alertController.SetValueForKey(messageText, new NSString("attributedMessage"));

enter image description here