मैं वर्तमान में एक pin-code बना रहा हूं। मैं बटन ईवेंट फ़ंक्शन को एक में एकीकृत करने के लिए सभी फ़ंक्शन को एक फ़ंक्शन में शामिल करना चाहता हूं, इसलिए मैं UIButton का नाम प्राप्त करना चाहता हूं, लेकिन मुझे नहीं पता कि कैसे।

@IBOutlet weak var oneButton: UIButton!
@IBOutlet weak var twoButton: UIButton!
...
var pinCodeNum : String! = ""
...

  @IBAction func OneButton(_ sender: UIButton) {
        pincodeLogic(sender)
    }

    func pincodeLogic(_ sender: UIButton) {
         // I want get value is (example : 'oneButton' or 'twoButton' or 'threeButton' more )
    }

जैसा कि आप मेरे कोड से देख सकते हैं, मुझे एक पैरामीटर के रूप में 'sender' मिल रहा है, मैं इस पैरामीटर का उपयोग करके oneButton या twoButton का नाम जानना चाहता हूं। मुझे कैसे पता चलेगा?

screen

माई नंबर बटन में एक button और एक label होता है।


संपादित करें


  @IBAction func OneButton(_ sender: UIButton) {

        pincodeLogic(sender)
    }

    func pincodeLogic(_ sender: UIButton) {
         if let number = sender.currentTitle {
            print(number)
        }
    }

मैं प्रिंट लॉग नहीं देख सकता।

0
iosbegindevel 17 सितंबर 2019, 12:28
2
if let number = sender.currentTitle { print(number)} का उपयोग करें
 – 
Anbu.Karthik
17 सितंबर 2019, 12:31
प्रत्येक बटन के लिए एक अलग फ़ंक्शन जोड़ें।
 – 
Fogmeister
17 सितंबर 2019, 12:32
हाय @Fogmeister प्रत्येक बटन में अलग-अलग फ़ंक्शन जोड़कर आपका क्या मतलब है?
 – 
iosbegindevel
17 सितंबर 2019, 12:34
प्रत्येक बटन के लिए सामान्य विधि बनाएं और टचअप क्रिया का उपयोग करके सीधे प्रेषक.currentTitle प्राप्त करें।
 – 
Anbu.Karthik
17 सितंबर 2019, 12:34
1
@ अंबु.कार्तिक सही कह रहे हैं, आपको sender.currentTitle का उपयोग करना चाहिए
 – 
Sagar Chauhan
17 सितंबर 2019, 12:37

3 जवाब

सबसे बढ़िया उत्तर

आप प्रेषक की तुलना अपने बटन इंस्टेंस से कर सकते हैं।

func pincodeLogic(_ sender: UIButton) {
    switch sender {
    case oneButton:
        print("oneButton pressed")
    case twoButton:
        print("twoButton pressed")
    default:
        print("unknown button pressed")
    }
}
3
iOSDev 17 सितंबर 2019, 12:44
मुझे प्राप्त प्रेषक एक स्ट्रिंग नहीं है।
 – 
iosbegindevel
17 सितंबर 2019, 12:45
मैं जानता हूँ। मैंने आपको UIButton ऑब्जेक्ट्स की तुलना की है
 – 
iOSDev
17 सितंबर 2019, 12:54
यह वैसा ही है जैसा मैं चाहता हूं। धन्यवाद।
 – 
iosbegindevel
17 सितंबर 2019, 13:07

प्रेषक का उपयोग करके बटन में मौजूद लेबल की सामग्री तक पहुँचने के लिए, यह एक उदाहरण है:

@IBAction func OneButton(_ sender: UIButton) {
   print(sender.titleLabel?.text)
}

तो आप यह कर सकते हैं:

@IBAction func OneButton(_ sender: UIButton) {

        pincodeLogic(sender)
  }

  func pincodeLogic(_ sender: UIButton) {
         if let number = sender.titleLabel?.text {
            print(number)
        }
  }

मुझे आशा है कि मैं तुम्हारे लिए वहाँ रहा हूँ। मुझे बताओ।

0
mfiore 17 सितंबर 2019, 12:45
जब मैं एक बटन पर क्लिक करता हूं तो मैं प्रिंट लॉग नहीं देख सकता,
 – 
iosbegindevel
17 सितंबर 2019, 12:51

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

@IBAction func btnAction(_ sender: UIButton) {
switch sender.tag {
case 1:
    print("oneButton pressed")
case 2:
    print("twoButton pressed")
default:
    print("unknown button pressed")
 }
}

यदि आपको केवल बटन शीर्षक प्रिंट करने की आवश्यकता है तो निम्न कार्य करें।

@IBAction func btnAction(_ sender: UIButton) {
   print(sender.titleLabel?.text! as! String)
}
0
shubham 18 सितंबर 2019, 09:50