इस पर बटन के साथ मेरे कई विचार हैं। वे सभी दृश्य एक ViewController से जुड़े हुए हैं और इस ViewController में मेरे पास उन सभी 50 बटन के लिए IBOutlets परिभाषित हैं।
उन्हें आसानी से एक्सेस करने के लिए, मैंने सभी UIButtons को एक में संग्रहीत कियाबहुआयामी NSMutableArray। परीक्षण के उद्देश्य से मैंने सभी बटनों को एक अद्वितीय शीर्षक दिया है। UIButtons को Array में सही ढंग से संग्रहीत किया गया है, मैं परीक्षण कर सकता हूं कि शीर्षकलेब का उपयोग कर।
एक बटन धकेलने के बाद, मैं एक विधि कहता हूं:
-(IBAction)pushButton:(id)sender
वहाँ में मैं तुलना:
if ( [allButtonsArray objectAtIndex:1] == sender )
// do something
हालांकि, ऐरे और प्रेषक बटन से चयनित यूआईट्यूटन का एक ही शीर्षक है लैबल (जो कि मेरे मामले में अद्वितीय है) IF स्टेटमेंट सही नहीं है।
क्या किसी भी बोडोड को एक विचार है क्यों?
धन्यवाद, पैट
उत्तर:
जवाब के लिए 0 № 1क्या आपने उन्हें UIButtons के रूप में चुनने की कोशिश की है?
if ( (UIButton *)[allButtonsArray objectAtIndex:1] == (UIButton *)sender )
या उपयोग करें isEqual
के बजाय विधि ==
भी, क्यों नहीं बस तुलना करें titleLabel
बजाय?
जवाब के लिए 0 № 2
मैं सिर्फ NSLog% @ का उपयोग करके UIButton का उत्पादन करता हूं, जिसकी मैं तुलना कर रहा हूं और पता चला है, कि "फ़्रेम", "अपारदर्शी" "CALayer" आदि जैसी जानकारी समान है, लेकिन:
"UIRoundedRectButton: = x4b3f7f0" जैसी वास्तविक मेमोरी आईडी अलग है इसलिए IF स्टेटमेंट कभी सत्य नहीं होता है।
अब मैंने जो किया है वह प्रत्येक UIButton को असाइन करना हैइंटरफ़ेस-बिल्डर एक विशिष्ट टैग-मूल्य (दृश्य अनुभाग में)। यह टैग [प्रेषक टैग] द्वारा पहुँचा जा सकता है और आसानी से एक संख्यात्मक सरणी के साथ तुलना की जा सकती है कि कौन सा बटन दबाया गया था।