खोज…


एक चेतावनी प्रदर्शित करें

IOS 8 के बाद अलर्ट के लिए, आप एक प्रयोग करेंगे UIAlertController लेकिन इससे पहले के संस्करणों के लिए, आप एक प्रयोग किया जाता है | UIAlertView , जो अब मान्य नहीं है।

8.0
var alert = UIAlertController.Create(title, message, UIAlertControllerStyle.Alert);
alert.AddAction(UIAlertAction.Create(otherTitle, UIAlertActionStyle.Destructive, (action) => {
    // otherTitle();
}));
alert.AddAction(UIAlertAction.Create(cancelTitle, UIAlertActionStyle.Cancel, null));
this.PresentViewController(alert, true, null);
8.0
var alert = new UIAlertView (title, message, null, cancelTitle, otherTitle);
alert.Clicked += (object sender, UIButtonEventArgs e) => {
    if(e.ButtonIndex == 1)
       // otherTitle();
};
alert.Show ();

लॉगिन अलर्ट प्रदर्शित करें

निम्न कोड iOS 8 के लिए है और लॉगिन अलर्ट बनाने के लिए कम है।

// Create the UIAlertView
var loginAlertView = new UIAlertView(title, message, null, cancelTitle, okTitle);

// Setting the AlertViewStyle to UIAlertViewStyle.LoginAndPasswordInput
loginAlertView.AlertViewStyle = UIAlertViewStyle.LoginAndPasswordInput;

// Getting the fields Username and Password
var usernameTextField = loginAlertView.GetTextField(0);
var passwordTextField = loginAlertView.GetTextField(1);

// Setting a placeholder
usernameTextField.Placeholder = "[email protected]";
passwordTextField.Placeholder = "Password";

// Adding the button click handler.
loginAlertView.Clicked += (alertViewSender, buttonArguments) =>
{
    
    // Check if cancel button is pressed
    if (buttonArguments.ButtonIndex == loginAlertView.CancelButtonIndex)
    {
        // code
    }
    
    // In our case loginAlertView.FirstOtherButtonIndex is equal to the OK button
    if (buttonArguments.ButtonIndex == loginAlertView.FirstOtherButtonIndex)
    {
        // code
    }
};

// Show the login alert dialog
loginAlertView.Show();

एक्शन शीट प्रदर्शित करें

UIAlertController के बाद से उपलब्ध UIAlertController आपको एक्शन शीट या अधिक क्लासिक अलर्ट के लिए समान अलर्ट ऑब्जेक्ट का उपयोग करने की अनुमति देता है। फर्क केवल इतना है कि UIAlertControllerStyle को बनाते समय एक पैरामीटर के रूप में पारित किया गया है।

यह लाइन यहां उपलब्ध कुछ अन्य उदाहरणों की तुलना में एक अलर्ट व्यू से एक्शनशीट में बदल जाती है:

var alert = UIAlertController.Create(title, message, UIAlertControllerStyle.ActionSheet);

कंट्रोलर में क्रियाओं को जोड़ने का तरीका अभी भी वही है:

alert.AddAction(UIAlertAction.Create(otherTitle, UIAlertActionStyle.Destructive, (action) => {
    // ExecuteSomeAction();
}));
alert.AddAction(UIAlertAction.Create(cancelTitle, UIAlertActionStyle.Cancel, null));

//Add additional actions if necessary

ध्यान दें कि यदि आपके पास कोई पैरामीटर रहित विधि है, तो आप इसे .AddAction() के अंतिम पैरामीटर के रूप में उपयोग कर सकते हैं।

उदाहरण के लिए, मान लें कि मैं private void DoStuff(){...} का कोड चाहता हूं, जब मुझे "ओके" दबाया जाएगा।

UIAlertAction action = UIAlertAction.Create("OK", UIAlertActionStyle.Cancel, DoStuff);
alert.AddAction(action);

नोटिस मैं कार्रवाई के निर्माण में DoStuff के बाद () का उपयोग नहीं कर रहा हूं।

जिस तरह से आप नियंत्रक को प्रस्तुत करते हैं उसी तरह से किसी भी अन्य नियंत्रक को किया जाता है:

this.PresentViewController(alert, true, null);

मोडल अलर्ट डायलॉग प्रदर्शित करें

यह उपयोग करने के लिए आम बात थी NSRunLoop मोडल दिखाने के लिए UIAlertView कोड निष्पादन ब्लॉक करने के लिए जब तक उपयोगकर्ता इनपुट आईओएस में संसाधित किया जाता है; जब तक Apple ने iOS7 जारी किया, उसने कुछ मौजूदा ऐप तोड़ दिए। सौभाग्य से, इसे C # के async / प्रतीक्षा के साथ लागू करने का एक बेहतर तरीका है।

यहाँ नया कोड Async / प्रतीक्षारत पैटर्न का लाभ उठाते हुए modal UIAlertView दिखाना है:

Task ShowModalAletViewAsync (string title, string message, params string[] buttons)
{
    var alertView = new UIAlertView (title, message, null, null, buttons);
    alertView.Show ();
    var tsc = new TaskCompletionSource ();

    alertView.Clicked += (sender, buttonArgs) => {
        Console.WriteLine ("User clicked on {0}", buttonArgs.ButtonIndex);
        tsc.TrySetResult(buttonArgs.ButtonIndex);
    };
    return tsc.Task;
}

//Usage
async Task PromptUser() {
    var result = await ShowModalAletViewAsync 
               ("Alert", "Do you want to continue?", "Yes", "No"); //process the result
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow