खोज…


टिप्पणियों

UIAlertController ऑब्जेक्ट उपयोगकर्ता के लिए एक चेतावनी संदेश प्रदर्शित करता है। यह वर्ग अलर्ट प्रदर्शित करने के लिए UIActionSheet और UIAlertView वर्गों की जगह लेता है। आपके द्वारा इच्छित क्रियाओं और शैली के साथ चेतावनी नियंत्रक को कॉन्फ़िगर करने के बाद, इसे presentViewController:animated:completion: का उपयोग करके presentViewController:animated:completion: विधि।

Apple के प्रलेखन से

UIAlertController स्विफ्ट में

UIAlertController के साथ अलर्ट

UIAlertView और UIActionSheet को iOS 8 और बाद में UIActionSheet । इसलिए Apple ने AlertView और ActionSheet लिए एक नया कंट्रोलर पेश किया, जिसे UIAlertController कहा जाता है, जो preferredStyle बदलकर, आप AlertView और ActionSheet बीच स्विच कर सकते हैं। इसके लिए कोई प्रतिनिधि विधि नहीं है क्योंकि सभी बटन घटनाओं को उनके ब्लॉकों में नियंत्रित किया जाता है।

सरल चेतावनी

स्विफ्ट:

let alert = UIAlertController(title: "Simple", message: "Simple alertView demo with Cancel and OK.", preferredStyle: .alert)

alert.addAction(UIAlertAction(title: "Cancel", style: .cancel) { _ in
        print("Cancel")
})
alert.addAction(UIAlertAction(title: "OK", style: .default) { _ in
        print("OK")
})

present(alert, animated: true)

उद्देश्य सी:

 UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Simple" message:@"Simple alertView demo with Cancel and OK." preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * action) {
        NSLog(@"Cancel");
    }];
    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
        NSLog(@"OK");
    }];
    
    [alertController addAction:cancelAction];
    [alertController addAction:okAction];
    [self presentViewController:alertController animated: YES completion: nil];

यहाँ छवि विवरण दर्ज करें

विनाशकारी चेतावनी

स्विफ्ट:

let alert = UIAlertController(title: "Simple", message: "Simple alertView demo with Cancel and OK.", preferredStyle: .alert)

alert.addAction(UIAlertAction(title: "Destructive", style: .destructive) { _ in
        print("Destructive")
})
alert.addAction(UIAlertAction(title: "OK", style: .default) { _ in
        print("OK")
})

present(alert, animated: true)

उद्देश्य सी:

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Destructive" message:@"Simple alertView demo with Destructive and OK." preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *destructiveAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * action) {
        NSLog(@"Destructive");
    }];
    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
        NSLog(@"OK");
    }];
    
    [alertController addAction:destructiveAction];
    [alertController addAction:okAction];
    [self presentViewController:alertController animated: YES completion: nil];

यहाँ छवि विवरण दर्ज करें

अस्थायी टोस्ट-जैसे पॉप अप

त्वरित सूचनाओं के लिए अच्छा है, जिनमें सहभागिता की आवश्यकता नहीं है।

तीव्र

let alert = UIAlertController(title: "Toast", message: "Hello World", preferredStyle: .Alert)

presentViewController(alert, animated: true) {
     let delay_s:Double = 2
     let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay_s * Double(NSEC_PER_SEC)))
     dispatch_after(delayTime, dispatch_get_main_queue()) {
          alert.dismissViewControllerAnimated(true, completion: nil)
     }
}

एक प्रांप्ट बॉक्स की तरह UIAlertController में टेक्स्ट फील्ड जोड़ना

तीव्र

let alert = UIAlertController(title: "Hello",
                              message: "Welcome to the world of iOS",
                              preferredStyle: UIAlertControllerStyle.alert)
let defaultAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) { (action) in
        
}
defaultAction.isEnabled = false
alert.addAction(defaultAction)
    
alert.addTextFieldWithConfigurationHandler { (textField) in
     textField.delegate = self
}
    
present(alert, animated: true, completion: nil)

उद्देश्य सी

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Hello"
                                                               message:@"Welcome to the world of iOS"
                                                        preferredStyle:UIAlertControllerStyleAlert];
    
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" 
                                                        style:UIAlertActionStyleDefault
                                                      handler:^(UIAlertAction * action) {}];
    
defaultAction.enabled = NO;
[alert addAction:defaultAction];    
    
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
     textField.delegate = self;
}];        

[self presentViewController:alert animated:YES completion:nil];

यहाँ छवि विवरण दर्ज करें

UIAlertController के साथ एक्शन शीट्स

साथ UIAlertController , पदावनत की तरह कार्रवाई शीट UIActionSheet एक ही एपीआई के साथ बनाया जाता के रूप में आप AlertViews के लिए इस्तेमाल करते हैं।

दो बटन के साथ सरल एक्शन शीट

तीव्र

let alertController = UIAlertController(title: "Demo", message: "A demo with two buttons", preferredStyle: UIAlertControllerStyle.actionSheet)

उद्देश्य सी

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Demo" message:@"A demo with two buttons" preferredStyle:UIAlertControllerStyleActionSheet];

"रद्द करें" और "ठीक" बटन बनाएं

तीव्र

let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (result : UIAlertAction) -> Void in
    //action when pressed button
}
let okAction = UIAlertAction(title: "Okay", style: .default) { (result : UIAlertAction) -> Void in
    //action when pressed button
}

उद्देश्य सी

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * action) {
        //action when pressed button
    }];

UIAlertAction * okAction = [UIAlertAction actionWithTitle:@"Okay" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
        //action when pressed button
    }];

और उन्हें एक्शन शीट में जोड़ें:

तीव्र

alertController.addAction(cancelAction)
alertController.addAction(okAction)

उद्देश्य सी

[alertController addAction:cancelAction];
[alertController addAction:okAction];

अब UIAlertController प्रस्तुत करें:

तीव्र

self.present(alertController, animated: true, completion: nil)

उद्देश्य सी

[self presentViewController:alertController animated: YES completion: nil];

यह परिणाम होना चाहिए:

UIAlertController एक्शन शीट उदाहरण

विनाशकारी बटन के साथ एक्शन शीट

का उपयोग करते हुए UIAlertActionStyle .destructive एक के लिए UIAlertAction लाल रंग रंग के साथ एक बटन पैदा करेगा।

विनाशकारी बटन

इस उदाहरण के लिए, ऊपर से okAction को इस UIAlertAction द्वारा प्रतिस्थापित किया गया था:

तीव्र

let destructiveAction = UIAlertAction(title: "Delete", style: .destructive) { (result : UIAlertAction) -> Void in
    //action when pressed button
}

उद्देश्य सी

UIAlertAction * destructiveAction = [UIAlertAction actionWithTitle:@"Delete" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * action) {
            //action when pressed button
        }];

अलर्ट दिखाना और संभालना

एक बटन

यहाँ छवि विवरण दर्ज करें

तीव्र

class ViewController: UIViewController {

    @IBAction func showAlertButtonTapped(sender: UIButton) {
        
        // create the alert
        let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertControllerStyle.Alert)
        
        // add an action (button)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))

        // show the alert
        self.presentViewController(alert, animated: true, completion: nil)
    }
}

दो बटन

यहाँ छवि विवरण दर्ज करें

तीव्र

class ViewController: UIViewController {

    @IBAction func showAlertButtonTapped(sender: UIButton) {
        
        // create the alert
        let alert = UIAlertController(title: "UIAlertController", message: "Would you like to continue learning how to use iOS alerts?", preferredStyle: UIAlertControllerStyle.Alert)
        
        // add the actions (buttons)
        alert.addAction(UIAlertAction(title: "Continue", style: UIAlertActionStyle.Default, handler: nil))
        alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))
        
        // show the alert
        self.presentViewController(alert, animated: true, completion: nil)
    }
}

तीन बटन

यहाँ छवि विवरण दर्ज करें

तीव्र

class ViewController: UIViewController {

    @IBAction func showAlertButtonTapped(sender: UIButton) {
        
        // create the alert
        let alert = UIAlertController(title: "Notice", message: "Lauching this missile will destroy the entire universe. Is this what you intended to do?", preferredStyle: UIAlertControllerStyle.Alert)
        
        // add the actions (buttons)
        alert.addAction(UIAlertAction(title: "Remind Me Tomorrow", style: UIAlertActionStyle.Default, handler: nil))
        alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))
        alert.addAction(UIAlertAction(title: "Launch the Missile", style: UIAlertActionStyle.Destructive, handler: nil))
        
        // show the alert
        self.presentViewController(alert, animated: true, completion: nil)
    }
}

हैंडलिंग बटन नल

उपर्युक्त उदाहरणों में handler nil था। जब उपयोगकर्ता बटन दबाता है, तो आप एक क्लोजर के साथ nil जगह ले सकते हैं, जैसे नीचे दिया गया उदाहरण:

तीव्र

alert.addAction(UIAlertAction(title: "Launch the Missile", style: UIAlertActionStyle.Destructive, handler: { action in
    
    // do something like...
    self.launchMissile()
    
}))

टिप्पणियाँ

  • कई बटन को अलग-अलग UIAlertActionStyle प्रकारों का उपयोग करने की आवश्यकता नहीं है। वे सब हो सकता है .Default
  • तीन से अधिक बटन के लिए एक्शन शीट का उपयोग करने पर विचार करें। सेटअप बहुत समान है। यहाँ एक उदाहरण है।

एक कार्रवाई बटन पर प्रकाश डाला

अलर्ट कंट्रोलर के पास एक संपत्ति होती है जो एम्प्लॉइज को अलर्ट कंट्रोलर में जोड़े गए एक्शन पर डालने के लिए उपयोग की जाती है। इस संपत्ति का उपयोग उपयोगकर्ता के ध्यान के लिए एक विशेष कार्रवाई को उजागर करने के लिए किया जा सकता है। उद्देश्य के लिए सी;

@property(nonatomic, strong) UIAlertAction *preferredAction

एक क्रिया जो पहले से ही सतर्क नियंत्रक में जोड़ी जाती है उसे इस संपत्ति को सौंपा जा सकता है। अलर्ट नियंत्रक इस कार्रवाई को उजागर करेगा।

इस संपत्ति का उपयोग केवल UIAlertControllerStyleAlert के साथ किया जा सकता है।

निम्नलिखित उदाहरण दिखाता है कि इसका उपयोग कैसे करना है।

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Cancel edit" message:@"Are you really want to cancel your edit?" preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * action) {
    NSLog(@"Cancel");
}];

UIAlertAction *no = [UIAlertAction actionWithTitle:@"NO" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
    NSLog(@"Highlighted button is pressed.");
}];

[alertController addAction:cancel];
[alertController addAction:no];

//add no action to preffered action.
//Note
//the action should already be added to alert controller
alertController.preferredAction = no;

[self presentViewController:alertController animated: YES completion: nil];

पसंदीदा एक्शन सेट के साथ अलर्ट नियंत्रक। कोई बटन हाइलाइट नहीं किया गया है।

यहाँ छवि विवरण दर्ज करें

पसंदीदा क्रिया के साथ नियंत्रक सेट नहीं हैकोई बटन हाइलाइट नहीं किया गया है।

यहाँ छवि विवरण दर्ज करें



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