2010-12-16 14 views
12

मैंने देखा कि जब मैं अपने आईफोन होम स्क्रीन से ऐप हटाता हूं, तो दिखाई देने वाला अलर्ट व्यू बाईं ओर एक डिलीट बटन दिखाता है और दाईं ओर रद्द करता है। हालांकि, जब मैं UIAlertView का उपयोग करके अपने ऐप के भीतर एक डिलीट फ़ंक्शन बनाता हूं, तो बटन केवल बाईं ओर रद्द करें और दाईं ओर हटाएं के साथ प्रदर्शित होते हैं।UIAlertView में रद्द करें बटन की स्थिति बदलें?

मैं चाहता हूं कि मेरा ऐप ओएस के साथ संगत हो, लेकिन मैं यह नहीं समझ सकता कि रद्द करें बटन को पहले कैसे दिखाना है। क्या कोई जानता है?

UIAlertView *alert = [[UIAlertView alloc] 
         initWithTitle:@"Delete Song" 
         message:@"Are you sure you want to delete this song? This will permanently remove it from your database." 
         delegate:self 
         cancelButtonTitle:@"Cancel" 
         otherButtonTitles:@"Delete", nil]; 

मैंने alert.cancelButtonIndex = 1 सेट करने का प्रयास किया, लेकिन इसका कोई प्रभाव नहीं पड़ा।

उत्तर

4

एक संभावित कारण ऐप्पल होम स्क्रीन पर एक चेतावनी दृश्य का उपयोग करता था क्योंकि यह एक बार उपयोगकर्ताओं को उन ऐप्स को रेट करने के लिए कहा जाता था जिन्हें वे हटा रहे थे (अब नहीं)। उन्होंने संभवतः रद्द बटन को लाइटर-रंगीन बटन बनाया क्योंकि इसे विनाशकारी क्रिया माना जाता था (एक ऐप और उसका डेटा हटा देता है)।

मुझे लगता है कि आप शीर्षक (cancelButtonTitle:@"Delete" otherButtonTitles:@"Cancel", nil) को उलट सकते हैं और उन बटनों पर क्लिक को अन्य तरीकों से संभाल सकते हैं (सुनिश्चित नहीं है कि ऐप्पल वही करता है)। हालांकि यह थोड़ा अजीब होगा; इसके बजाय एक एक्शन शीट का उपयोग करने के बारे में कैसे?

+0

हम्म, क्या आप जानते हैं कि ओएस के अन्य हिस्सों के लिए मानक क्या है? मैं इस बात को देखने के लिए किसी अन्य उदाहरण के बारे में नहीं सोच सकता। वैसे भी, अगर होम स्क्रीन से ऐप को हटाने से गैर-मानक सेटअप का उपयोग होता है, तो मुझे उससे मेल खाने की आवश्यकता नहीं है। – arlomedia

+0

@arlomedia: मैंने किसी अन्य डिलीट अलर्ट को चारों ओर नहीं देखा है। एसएमएस और कैलेंडर अलर्ट दोनों ही बाईं ओर अपना रद्द (बंद) बटन रखते हैं, बस एसडीके की तरह। AFAIK, कहीं और कुछ हटाना शामिल है (फोटो, संपर्क, कैलेंडर ईवेंट, नोट्स, आईपॉड प्लेलिस्ट) एक्शन शीट का उपयोग करता है। – BoltClock

+0

ठीक है, मैं बस इसे छोड़ दूंगा। जानकारी के लिए धन्यवाद। – arlomedia

52

आह, मैंने अभी यह पता लगाया कि इसे कैसे बदला जाए। cancelButtonTitle तर्क, वैकल्पिक है ताकि आप जो कुछ भी स्थिति आप चाहते हैं में एक कस्टम बटन जोड़ सकते हैं और उसके बाद नामित कि के रूप में रद्द बटन, इस तरह:

UIAlertView *alert = [[UIAlertView alloc] 
         initWithTitle:@"Delete Song" 
         message:@"Are you sure you want to delete this song? This will permanently remove it from your database." 
         delegate:self 
         cancelButtonTitle:nil 
         otherButtonTitles:@"Delete", @"Cancel", nil]; 
alert.cancelButtonIndex = 1; 

हटाएँ बटन छोड़ दिया और रद्द करें बटन डालता है पर दाएं बटन को रद्द करें और हाइलाइट करें।

+3

+1 अच्छा, निश्चित रूप से ऐप्पल ने मेरे सुझाव पर क्या इरादा किया। – BoltClock

+0

मैंने सोचा कि जब तक मैंने यह देखा तब तक मैं पागल हो रहा था। मैंने रद्द बटन के लिए @ "नहीं" और अन्य बटन शीर्षक के रूप में @ "हाँ" का उपयोग करने का प्रयास किया लेकिन बटनइंडेक्स 0 रद्द बटन था। मैं वास्तव में यह नहीं देख सकता कि एप्पल के हिस्से पर एक बग के अलावा कुछ भी है, लेकिन मैं किससे सवाल कर सकता हूं कि मैं क्या नहीं कर सकता हूं? हालांकि, यह दृष्टिकोण पूरी तरह से काम करता है, धन्यवाद! – FrostyL

+4

मुझे लगता है कि यह अब आईओएस 8.3 (सिम्युलेटर में) पर काम नहीं करता है, लेकिन आईओएस 7.1 पर ठीक काम करता है। इस तथ्य के बावजूद कि कुछ ऐप्पल अलर्ट अभी भी 8.3 में भी दाएं "रद्द करें" डालते हैं। (मुझे आश्चर्य है कि वे इसे कैसे करते हैं!) –

संबंधित मुद्दे