2015-01-13 18 views
7

मुझे एक प्रश्न मिला जो मेरे जैसा ही था, हालांकि इसका पूरी तरह उत्तर नहीं दिया गया था। अगर कोई मेरी मदद कर सकता है तो यह बहुत अच्छा होगा। जिस स्थान पर मुझे एक ही प्रश्न मिला वह here है।एक्शन के लिए एकाधिक पैरामीटर/तर्क - स्विफ्ट

मैं स्पष्ट रूप से समझता हूं कि func test()"test" और test(object:AnyObject)"test:" होगा। this के लिए धन्यवाद।

तो कैसे 2 पैरामीटर? 'कार्रवाई:' के लिए 2 तर्क नहीं कर सकते हैं?

func popoverSelectedCode (code:AnyObject, desc:AnyObject) 

मैं नीचे कुछ भिन्न तरीकों से इसे बाहर का परीक्षण करने की कोशिश की, लेकिन कोई लाभ नहीं हुआ:

action: "popoverSelectedCode:," 

action: "popoverSelectedCode:,:" 

action: "popoverSelectedCode: :" 

action: "popoverSelectedCode: , :" 

ही के बारे में एक सप्ताह के स्विफ्ट में वर्ष Am तो कृपया तरह हो।

संपादित यहाँ कोड

@IBAction func securityQuestButtonClicked (sender:AnyObject) 
{ 
    cellButton = sender as? UIButton; 

    var comboDescListArray = TableRoutine.loadCombobox("MobileQuestion") 

    var codeObject : NSArray = comboDescListArray[0] as NSArray; 
    var descObject : NSArray = comboDescListArray[1] as NSArray; 

    var selectionTVC = CPSelectionTVC(style:UITableViewStyle.Plain, codeArray:codeObject, descArray:descObject, target:self, action: "popoverSelectedCode::", widthForViewInPopover:650) 

    let navCtl = UINavigationController.init(rootViewController:selectionTVC) 
    popoverController = UIPopoverController.init(contentViewController:navCtl) 

    var contentHeight : CGFloat = CGFloat (UInt(selectionTVC.navigationTitleHeight) + UInt(selectionTVC.rowCount()) * UInt(selectionTVC.cellHeight)) 

    popoverController?.popoverContentSize = CGSizeMake(400.0, contentHeight) 
    popoverController?.presentPopoverFromRect(sender.bounds, inView:sender as UIView, permittedArrowDirections:UIPopoverArrowDirection.Up, animated:true) 
} 

पॉपओवर तथापि चयन पर प्रकट होता है की एक छोटी क्लिप है, यह सिर्फ लटकी हुई है।

+0

क्या आपको कोई जवाब मिला? मैं एक ही समस्या से निपट रहा हूँ। यदि ऐसा है तो आप अपने चयनकर्ता को एकाधिक पैरामीटर के साथ कैसे लिखते हैं, और एक्शन फ़ंक्शन कैसा दिखता है। धन्यवाद। –

+0

दुर्भाग्य से नहीं। मैं अन्य चीजों के साथ व्यस्त था, लेकिन मैंने आज पूरे दिन नए उत्तरों की तलाश करने की कोशिश की। यदि आप उत्तर में आते हैं तो मुझे पोस्ट रखें। –

उत्तर

10

स्विफ्ट पर बस एक नोट नीचे

action: "popoverSelectedCode:desc:" 
+0

आपने अभी मेरे गधे को बचाया! Ty! – MkaysWork

+0

टीवाई! अभी भी नए चयनकर्ता के लिए उपयोग किया जा रहा है। बस अगर यह किसी और की मदद करता है तो मैं स्विफ्ट 2.2 'textField.delegate? .performSelector (# चयनकर्ता (टेक्स्टफिल्ड (_: चाहिए चेंजएक्टर्सइरेंज: प्रतिस्थापन स्ट्रिंग :)) में एक प्रतिनिधि विधि को कॉल करने के लिए चयनकर्ता का उपयोग करने में सक्षम था। – NSGangster

1

दो पैरामीटर के साथ यह action:: बन जाता है। एक तर्क के लिए एक कोलन।

+0

क्या आप विस्तारित कर सकते हैं या शायद एक उदाहरण दे सकते हैं? –

+0

विस्तृत करने के लिए कुछ भी नहीं है। आपने कुछ लक्ष्य के लिए कार्रवाई के रूप में popoverSelectedCode फ़ंक्शन की आपूर्ति की है। तेजी से आप इसे इस तरह एक चयनकर्ता बदल सकते हैं। "PopoverSelectedCode ::"। दो कोलन कहते हैं कि यह कार्रवाई दो पैरामीटर लेती है।उद्देश्य-सी रनटाइम – mustafa

+0

द्वारा रनटाइम में किए गए सभी निरीक्षण/संकल्प मैंने आपके सुझाव के अनुसार प्रयास किया लेकिन दुर्भाग्यवश यह अभी भी एक्शन फ़ंक्शन में पास नहीं हुआ है। –

1

यदि फ़ंक्शन के नीचे दो पैरामीटर हैं। कोड

func switchCard(card: Int, withCard card1: Int) { 
    print(card) 
} 
let singleTap1 = UITapGestureRecognizer(target: self, action: "switchCard:withCard:") 
+0

हाय राकेश, हाँ! मैंने कोशिश की कि जैसा कि मेरे संपादित भाग में दिखाया गया है। लेकिन समस्या यह है कि पॉपओवर नहीं चलेगा। यह सिर्फ चयनित राज्य में लटका है। –

+0

क्या आप अपना पूरा कोड पोस्ट कर सकते हैं? – rakeshbs

+0

मैंने आपके द्वारा अनुरोध किए गए पूरे कार्य को चिपकाया है। मुझे एक्शन फ़ंक्शन पेस्ट करने की आवश्यकता नहीं दिखाई दे रही थी क्योंकि यह भी गुज़र रही नहीं थी। –

0

यहाँ जिस तरह से आप अपने मामले में इसे प्राप्त कर सकते हैं 2.2। अब आप के रूप में

#selector(popoverSelectedCode(_:desc:) 
1

जाँच करें:

func clicked(sender:AnyObject,value:AnyObject) 
{ 
} 

फिर

action = "clicked::" 
+0

हालांकि यह कोड प्रश्न का उत्तर दे सकता है, इस सवाल का जवाब देने के तरीके के बारे में अतिरिक्त संदर्भ प्रदान करना और/या कैसे यह दीर्घकालिक मूल्य में सुधार करता है। – JAL

0

कई तर्क के लिए चयनकर्ता विधि में गुजरता चयनकर्ता लिख ​​सकते हैं:

let swipeRecognizer = UISwipeGestureRecognizer.init(target: self, action: #selector(ImageViewController.handleTap(_: sender :))) 
myCell.imageViewPhoto .addGestureRecognizer(swipeRecognizer) 
1

स्विफ्ट में 2.2 आप कुछ इस तरह कर सकते हैं।

myUISlider.addTarget(self, action:#selector(self.onSliderValChanged(_:withEvent:)), forControlEvents: .ValueChanged) 

func onSliderValChanged(slider: UISlider, withEvent event: UIEvent?) { 
    } 

मुझे उम्मीद है कि यह किसी को वहां मदद करता है।

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