2015-03-17 9 views
15

मेरे वॉचकिट ऐप में, जब उपयोगकर्ता इसे पहली बार लॉन्च करता है, तो मैं उन्हें एक उपयोगी संदेश अलर्ट प्रस्तुत करना चाहता हूं जो उन्हें बताता है कि ऐप कैसे काम करता है, उदा। बटन क्या करते हैं, आदिवॉचकिट और यूआईएलर्टव्यू/यूआईएलर्ट कंट्रोलर पॉपअप

क्या UIAlertView/UIAlertController के समान कुछ है जिसे मैं वॉचकिट ऐप में कॉल कर सकता हूं? मुझे इस विषय पर कोई जवाब नहीं मिला, जिसका अर्थ यह हो सकता है कि यह संभव नहीं है।

उत्तर

46

(नया watchOS 2.0 में)

WKAlertAction *act = [WKAlertAction actionWithTitle:@"OK" style:WKAlertActionStyleCancel handler:^(void){ 
     NSLog(@"ALERT YES "); 
    }]; 

NSArray *testing = @[act]; 

[self presentAlertControllerWithTitle:@"Voila" message:@"This is Watch OS 2 !" preferredStyle:WKAlertControllerStyleAlert actions:testing]; 

स्विफ्ट

func showPopup(){ 

    let h0 = { print("ok")} 

    let action1 = WKAlertAction(title: "Approve", style: .Default, handler:h0) 
    let action2 = WKAlertAction(title: "Decline", style: .Destructive) {} 
    let action3 = WKAlertAction(title: "Cancel", style: .Cancel) {} 

    presentAlertControllerWithTitle("Voila", message: "", preferredStyle: .ActionSheet, actions: [action1, action2,action3]) 


} 
+0

सोच रहा है कि जब हम केवल एक बटन रखते हैं तो यह क्यों काम नहीं करता है? –

+0

एक बटन के साथ भी मेरे लिए पूरी तरह से काम करता है। बस 'presentAlertControllerWithTitle' को प्रदान की गई क्रिया सरणी को भी समायोजित करना याद रखें – oelna

2

अलर्ट के लिए ऐसी कोई कक्षा नहीं है। हालांकि आप "WKInterfaceLabel" और "WKInterfaceButton" में जानकारी के साथ "WKInterfaceController" को सामान्य रूप से प्रस्तुत कर सकते हैं।

+2

दु: खी, सेब सिर्फ हमारे जीवन और अधिक जटिल बना दिया। –

2

अफसोस की बात है, आप यह नहीं कर सकते हैं। लेकिन ऐप लॉन्च होने पर पहली बार यह ऐप कैसे काम कर रहा है, इसके स्क्रीनशॉट के साथ आप एक मॉडल पेज-आधारित पदानुक्रम कर सकते हैं। मैं अपने ऐप में ऐसा कर रहा हूँ! :)

+0

क्या आप स्टोरीबोर्ड में इसे सामान्य रूप से कैसे कर रहे हैं, इस बारे में कोड और स्क्रीनशॉट जोड़ सकते हैं? वॉचकिट में केवल एक मुख्य दृश्य नियंत्रक है और आप किसी उपयोगकर्ता को किसी अन्य स्थान पर रीडायरेक्ट कैसे कर सकते हैं और फिर उस पृष्ठ को फिर कभी नहीं दिखा सकते? मुझे समझ में नहीं आता –

1

यदि मैं एक और सुझाव दे सकता हूं: अपने प्रारंभिक इंटरफ़ेस नियंत्रक में अपने "अलर्ट" के लिए एक अलग समूह बनाएं और आवश्यकतानुसार इसे दिखाएं/छुपाएं।

+0

यह सुनिश्चित नहीं है कि यह संभव है, क्योंकि आप तत्वों को ओवरलैप नहीं कर सकते हैं, इसलिए आपको मुख्य UI को छिपाना होगा और यह बहुत हैकी (अचानक/कोई एनीमेशन आदि) नहीं होगा। इसके बजाए, यदि संभव हो तो एक मोडल नियंत्रक दिखाना एक बेहतर विकल्प हो सकता है। – strangetimes

3

हां, watchOS 2 में अपग्रेड करने के बाद, आप WKInterfaceController के वर्तमानAlertController का उपयोग करके एक अलर्ट व्यू प्रस्तुत कर सकते हैं।

the official documentation here देखें।

2
let h0 = { print("h0 action")} 
    let h1 = { print("h1 action")} 

    let action1 = WKAlertAction(title: "h0 action", style: .default, handler:h0) 
    let action2 = WKAlertAction(title: "h1 action", style: .default, handler:h0) 

    self.presentAlert(withTitle: "Title", message: "a message", preferredStyle: .actionSheet, actions: [action1, action2]) 

कोड स्विफ्ट 3 में

0

मैं swift4 जोड़ना होगा कि मेरे लिए काम परिणाम जबकि

का उपयोग कर

WKAlertAction

watchOS 4.0

स्विफ्ट 4

 let action1 = WKAlertAction.init(title: "Cancel", style:.cancel) { 
      print("cancel action") 
     } 

     let action2 = WKAlertAction.init(title: "default", style:.default) { 
      print("default action") 
     } 

     let action3 = WKAlertAction.init(title: "destructive", style:.destructive) { 
      print("destructive action") 
     } 

     presentAlert(withTitle: "Alert Title", message: "message is here", preferredStyle:.actionSheet, actions: [action1,action2,action3]) 
संबंधित मुद्दे