iOS में पॉप अप डायलॉग बॉक्स कैसे लागू करें


303

गणना के बाद, मैं उपयोगकर्ता को संदेश देते हुए एक पॉप अप या अलर्ट बॉक्स प्रदर्शित करना चाहता हूं। क्या किसी को पता है कि मुझे इस बारे में अधिक जानकारी कहां मिल सकती है?

जवाबों:


517

हाँ, एक UIAlertViewशायद तुम क्या देख रहे हो। यहाँ एक उदाहरण है:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection" 
                                                message:@"You must be connected to the internet to use this app." 
                                               delegate:nil 
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:nil];
[alert show];
[alert release];

यदि आप कुछ अधिक फैंसी करना चाहते हैं, तो कहें कि अपने UIAlertViewआप में एक कस्टम UI प्रदर्शित करें , आप विधि UIAlertViewमें कस्टम UI घटकों को उप-वर्ग कर सकते हैं और डाल सकते हैं init। यदि आप UIAlertViewप्रकट होने के बाद एक बटन प्रेस का जवाब देना चाहते हैं , तो आप delegateऊपर सेट कर सकते हैं और - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndexविधि को लागू कर सकते हैं ।

तुम भी देखने के लिए चाहते हो सकता है UIActionSheet


45
Apple प्रलेखन का कहना है कि "UIAlertView वर्ग का उपयोग करने का इरादा है-और उपवर्ग का समर्थन नहीं करता है"। developer.apple.com/library/ios/#documentation/uikit/reference/…
JOM

40
बस एक टिप्पणी: एआरसी सक्षम होने के साथ, '[चेतावनी जारी]' की जरूरत नहीं है (कम से कम, संकलक ऐसा कहता है)।
जेवियर सेडानो


1
यहाँ प्रतिनिधि के साथ एक सरल UIAlertView का एक उदाहरण है, अगर आपको बटन क्रियाओं की भी ज़रूरत है
guilherme.minglini

2
मामले में आप देख रहे एक तेज संस्करण के लिए, बाहर की जाँच ऑस्कर Swanros ' जवाब
रोगेरियो चाव्स

177

इस सवाल पर आने वाले अलग-अलग लोगों का मतलब है पॉपअप बॉक्स। मैं अत्यधिक अस्थायी दृश्य प्रलेखन पढ़ने की सलाह देता हूं । मेरा उत्तर मोटे तौर पर इस और अन्य संबंधित प्रलेखन का सारांश है।

अलर्ट (मुझे एक उदाहरण दिखाएं)

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

अलर्ट एक शीर्षक और एक वैकल्पिक संदेश प्रदर्शित करते हैं। उपयोगकर्ता को जाने से पहले इसे स्वीकार करना चाहिए (एक-बटन चेतावनी) या एक साधारण विकल्प (दो-बटन चेतावनी) बनाना चाहिए। आप के साथ एक अलर्ट बनाएँ UIAlertController

यह अनावश्यक चेतावनी बनाने के बारे में प्रलेखन की चेतावनी और सलाह को उद्धृत करने के लायक है।

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

टिप्पणियाँ:

एक्शन शीट (मुझे एक उदाहरण दिखाएं)

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

एक्शन शीट्स उपयोगकर्ता को विकल्पों की एक सूची देती हैं। वे डिवाइस के आकार और अभिविन्यास के आधार पर या तो स्क्रीन के नीचे या एक आबादी में दिखाई देते हैं। अलर्ट के साथ, UIAlertControllerएक्शन शीट बनाने के लिए उपयोग किया जाता है। IOS 8 से पहले, UIActionSheetइस्तेमाल किया गया था, लेकिन अब प्रलेखन कहता है:

महत्वपूर्ण: UIActionSheet आईओएस 8 में पदावनत किया गया है (ध्यान दें कि UIActionSheetDelegateयह भी पदावनत है।) आईओएस 8 और बाद में एक्शन शीट बनाने और प्रबंधित करने के बजाय, UIAlertControllerpreferredStyleके साथ उपयोग करें UIAlertControllerStyleActionSheet

मॉडल दृश्य (मुझे एक उदाहरण दिखाएं)

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

एक मोडल दृश्य एक आत्म-निहित दृष्टिकोण है जिसमें एक कार्य को पूरा करने के लिए आवश्यक सब कुछ है। यह पूरी स्क्रीन ले भी सकता है और नहीं भी। एक मोडल व्यू बनाने UIPresentationControllerके लिए, मोडल प्रेजेंटेशन स्टाइल्स में से किसी एक का उपयोग करें ।

यह सभी देखें

पॉपओवर (मुझे एक उदाहरण दिखाएं)

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

एक पॉपओवर एक दृश्य है जो तब दिखाई देता है जब कोई उपयोगकर्ता किसी चीज़ पर टैप करता है और उसे टैप करते समय गायब हो जाता है। इसमें एक तीर है जो नियंत्रण या स्थान दिखाता है जहां से नल बनाया गया था। कंटेंट किसी भी चीज़ के बारे में हो सकता है जिसे आप व्यू कंट्रोलर में रख सकते हैं। आप एक के साथ एक पॉपओवर बनाते हैं UIPopoverPresentationController। (IOS 8 से पहले, UIPopoverControllerअनुशंसित तरीका था।)

पिछली आबादी में केवल iPad पर उपलब्ध थे, लेकिन iOS 8 से शुरू करके आप उन्हें एक iPhone पर भी देख सकते हैं ( यहां , यहां और यहां देखें )।

यह सभी देखें

सूचनाएं

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

सूचनाएं ध्वनियाँ / कंपन, अलर्ट / बैनर, या बैज हैं जो किसी उपयोगकर्ता को तब भी सूचित करते हैं जब ऐप अग्रभूमि में नहीं चल रहा हो।

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

यह सभी देखें

Android टोस्ट के बारे में एक नोट

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

एंड्रॉइड में, एक टोस्ट एक छोटा संदेश है जो स्क्रीन पर थोड़े समय के लिए प्रदर्शित होता है और फिर ऐप के साथ उपयोगकर्ता के संपर्क को बाधित किए बिना स्वचालित रूप से गायब हो जाता है।

एंड्रॉइड पृष्ठभूमि से आने वाले लोग जानना चाहते हैं कि टोस्ट का आईओएस संस्करण क्या है। इन सवालों के कुछ उदाहरण उन्होंने पाया जा सकता है यहां , यहां , यहां , और यहां । इसका उत्तर यह है कि iOS में टोस्ट के बराबर कोई नहीं है । प्रस्तुत किए गए विभिन्न कार्यपत्रकों में शामिल हैं:

  • एक उपवर्ग के साथ अपना खुद का बनाएं UIView
  • एक तीसरी पार्टी परियोजना का आयात करें जो एक टोस्ट की नकल करती है
  • एक टाइमर के साथ एक बटन रहित चेतावनी का उपयोग करें

हालांकि, मेरी सलाह मानक UI विकल्पों के साथ रहना है जो पहले से ही iOS के साथ आते हैं। अपने ऐप को देखने और Android संस्करण के समान व्यवहार करने का प्रयास न करें। इस बारे में सोचें कि इसे कैसे रीपैकेज किया जाए ताकि यह एक iOS ऐप की तरह दिखे और महसूस हो।


3
अभी भी Android टोस्ट के बारे में एक नोट के साथ! अच्छा! यह जानकारी नए डेवलपर्स को मदद करती है जो एंड्रॉइड डेवलपमेंट से आता है। धन्यवाद!
ब्रिटनी डेको

3
यार, मुझे इसे प्रिंट करने और फ्रेम करने की आवश्यकता है! आपने मुझे कल और आज फिर से बचाया: डी
फिंगु

58

IOS 8 की रिलीज़ के बाद से, UIAlertViewअब पदावनत कर दिया गया है; UIAlertController प्रतिस्थापन है।

यह स्विफ्ट में कैसा दिखता है, इसका एक नमूना इस प्रकार है:

let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertActionStyle.default)
{
    (UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
    () -> Void in
}

जैसा कि आप देख सकते हैं, एपीआई हमें कार्रवाई के लिए कॉलबैक लागू करने की अनुमति देता है और जब हम अलर्ट प्रस्तुत कर रहे हैं, जो काफी आसान है!

स्विफ्ट 4.2 के लिए अपडेट किया गया

let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertAction.Style.default)
        {
            (UIAlertAction) -> Void in
        }
        alert.addAction(alertAction)
        present(alert, animated: true)
        {
            () -> Void in
        }

@Entalpi को प्रस्तुत करना चाहिए ViewController में एक समापन ब्रेस होता है और आपके पूरा होने और बस पूरा होने के बीच अंतर क्या है: nil?
एंड्रयू प्लमर

इससे कोई फर्क नहीं पड़ता। यह कॉल करने के लिए एक ब्लॉक मौजूद है इसे कहा जाएगा।
एंटाल्पी

25

IOS 8.0 के लिए अपडेट किया गया

IOS 8.0 के बाद से, आपको निम्नलिखित के रूप में UIAlertController का उपयोग करना होगा:

-(void)alertMessage:(NSString*)message
{
    UIAlertController* alert = [UIAlertController
          alertControllerWithTitle:@"Alert"
          message:message
          preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction* defaultAction = [UIAlertAction 
          actionWithTitle:@"OK" style:UIAlertActionStyleDefault
         handler:^(UIAlertAction * action) {}];

    [alert addAction:defaultAction];
    [self presentViewController:alert animated:YES completion:nil];
}

जहां मेरे उदाहरण में स्वयं एक UIViewController है, जो एक पॉपअप के लिए "presentViewController" विधि को लागू करता है।

डेविड


11

स्विफ्ट 3 और स्विफ्ट 4 के लिए:

चूंकि UIAlertView को हटा दिया गया है, इसलिए स्विफ्ट 3 पर अलर्ट अलर्ट प्रदर्शित करने का एक अच्छा तरीका है

let alertController = UIAlertController(title: NSLocalizedString("No network connection",comment:""), message: NSLocalizedString("connected to the internet to use this app.",comment:""), preferredStyle: .alert)
let defaultAction = UIAlertAction(title:     NSLocalizedString("Ok", comment: ""), style: .default, handler: { (pAlert) in
                //Do whatever you want here
        })
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)

पदावनत:

यह जाँच की गई प्रतिक्रिया से प्रेरित स्विफ्ट संस्करण है:

अलर्ट देखें:

   let alert = UIAlertView(title: "No network connection", 
                           message: "You must be connected to the internet to use this app.", delegate: nil, cancelButtonTitle: "Ok")
    alert.delegate = self
    alert.show()

अपने दृश्य नियंत्रक में प्रतिनिधि जोड़ें:

class AgendaViewController: UIViewController, UIAlertViewDelegate

जब उपयोगकर्ता बटन पर क्लिक करता है, तो यह कोड निष्पादित किया जाएगा:

func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {


}

UIAlertView अब पदावनत हो गया है।
पार्थ साने

7

हालांकि मैंने पहले से ही विभिन्न प्रकार के पॉपअप का अवलोकन लिखा है, ज्यादातर लोगों को बस अलर्ट की आवश्यकता है।

पॉपअप डायलॉग बॉक्स कैसे लागू करें

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

class ViewController: UIViewController {

    @IBAction func showAlertButtonTapped(_ sender: UIButton) {

        // create the alert
        let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertController.Style.alert)

        // add an action (button)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))

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

मेरा पूरा जवाब यहाँ है


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.