2016-08-28 13 views
6

ABAddressBook के साथ "नया संपर्क बनाएं" और "मौजूदा संपर्क में जोड़ें", जब मैं चाहता था कि उपयोगकर्ता संपर्क के लिए "नया संपर्क बनाएं" और "मौजूदा संपर्क में जोड़ें" के विकल्प प्राप्त करने में सक्षम हो। उन्होंने पहले नहीं देखा था, मैं ABUnknownPersonViewController बना और प्रस्तुत करूंगा।CNContactViewController()

मैं इस कार्यक्षमता को CNContacts ढांचे में दोहराने का कोई तरीका नहीं ढूंढ सकता। मुझे लगता है कि CNContactViewController(forUnknownContact: contact) काम कर सकता है, लेकिन दुर्भाग्यवश यह केवल उपयोगकर्ता को "संदेश भेजें" या "संपर्क साझा करें" देता है।

मैं किसी उपयोगकर्ता को अपने संपर्क पुस्तिका में संपर्क को सहेजने की अनुमति कैसे दूंगा, या तो एक नए संपर्क के रूप में या मौजूदा के हिस्से के रूप में, CNContacts में?

func presentContact() { 

    let status = CNContactStore.authorizationStatusForEntityType(.Contacts) 

    switch status { 
    case .Authorized:() 
    case .NotDetermined: requestAccess() 
    case .Denied, .Restricted: accessDenied() 
    } 

    print("authorized? \(status == .Authorized)") //prints "authorized? true" 

    let unknown = CNContactViewController(forUnknownContact: contact!) 

    unknown.delegate = self 

    self.navigationController?.pushViewController(unknown, animated: false) 

} 

यहां तक ​​कि जब मैं पहुँच का अनुरोध करने की कोशिश, उपयोगकर्ता अभी भी नहीं संपर्क बचा सकता है।

+1

क्या कोई व्यक्ति अपना संक्षिप्त वोट समझा सकता है? – 5813

+0

क्योंकि आप वास्तविक कोड नहीं दिखा रहे हैं। अपना कोड दिखाएं! आप अभी भी सभी महत्वपूर्ण टुकड़ों को छोड़ रहे हैं, और मैं यह नहीं बता सकता कि ऐसा इसलिए है क्योंकि आप नहीं जानते कि आपको उन्हें करना चाहिए या क्योंकि आप अपने कोड को स्टैक ओवरफ़्लो में चिपकाने में आलसी हैं। 'संपर्क' क्या है? वह लाइन दिखाएं जहां आपने 'अज्ञात' का 'संपर्क स्टोर' सेट किया था। वो चीजें सभी महत्वपूर्ण हैं। _प्रदर्शन। तुंहारे। असली। CODE._ – matt

+0

मैं अभी भी क्या महत्वपूर्ण टुकड़े छोड़ रहा हूं? 'संपर्क' किसी भी प्रकार के गुण सेट के साथ एक मनमानी 'सीएनकॉन्टैक्ट' है। मुझे यकीन नहीं है कि यह दिखाए जा रहे एक्शन बटन पर इसका असर कैसे हो सकता है। 'अज्ञात' की 'संपर्कस्टोर' संपत्ति को सेट करने के अलावा सबकुछ यहां है, जो समस्या बन जाता है। आपकी सहायता के लिए धन्यवाद. मुझे खेद है कि अगर मैं कम से कम पुनरुत्पादित उदाहरण बनाने में कुछ कोनों को काटता हूं; मैं इसे जितना संभव हो सके उतना आसान और आसान बनाने की कोशिश कर रहा था। – 5813

उत्तर

11

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

let con = CNMutableContact() 
con.givenName = "Johnny" 
con.familyName = "Appleseed" 
con.phoneNumbers.append(CNLabeledValue(
    label: "woods", value: CNPhoneNumber(stringValue: "555-123-4567"))) 
let unkvc = CNContactViewController(forUnknownContact: con) 
unkvc.message = "He knows his trees" 
unkvc.contactStore = CNContactStore() 
unkvc.delegate = self 
unkvc.allowsActions = false 
self.navigationController?.pushViewController(unkvc, animated: true) 

enter image description here

+0

हालांकि, यहां बताए गए बग के बारे में सावधान रहें: http://stackoverflow.com/q/32973254/341994 – matt

+0

_really_ से ऊपर क्या पोस्ट किया गया है, _actually_ मेरा असली कोड है। रेखा के लिए रेखा, शब्द के लिए शब्द, मेरे पास मेरी 'swift' फ़ाइलों में से एक है। 'संपर्क स्टोर' सेटिंग नहीं थी समस्या थी; तुमने मेरी मदद की – 5813

0

क्या आप अपने कोड में भूल रहे हैं एक CNContactStore की संभाल करने के लिए अपने unknown चर के contactStore संपत्ति स्थापित कर रही है।

[...] 

unknown.contactStore = CNContactStore() 

[...]