2011-02-05 25 views
8

मैं एप्पल डॉक्स पढ़ लिया है और मैं इन मंचों trolled है और मैं (सफलतापूर्वक) कुछ ट्यूटोरियल किया है और अपने खुद के प्रतिनिधियों बना दिया है और मैं अभी भी कुछ समझ में नहीं आता है। मुझे यकीन है कि यह कुछ ऐसा है जो मैं दूरी पर हूं लेकिन चूंकि मैंने उचित परिश्रम किया है और अभी भी यह नहीं पता कि मैं क्या गलत कर रहा हूं, मुझे उम्मीद थी कि आप में से एक मुझे बताने में सक्षम होगा।प्रतिनिधि UITableViewCell

स्थिति:

मैं एक कस्टम UITableViewCell उस में एक बटन है कि है। जब बटन टैप किया जाता है तो मैं UIImagePickerController को इस कस्टम सेल के प्रतिनिधि के रूप में खींचने की कोशिश कर रहा हूं। मैं बटन टैप को किसी भी समस्या को जाल और जवाब नहीं दे सकता लेकिन प्रवाह कभी भी प्रतिनिधि विधि पर नहीं जाता है। दूसरे शब्दों में, जब मैं कोड के माध्यम से कदम उठाता हूं तब तक ठीक है जब तक कि मैं बटन लक्ष्य विधि से दूसरे वर्ग में प्रतिनिधि विधि में कदम उठाने का प्रयास नहीं करता। यह सिर्फ कभी नहीं बुलाया जाता है।

यहां कोड है।

UIButton के लिए IBOutlet की स्थापना मैं प्रतिनिधि के लिए आईडी सेट कस्टम सेल, के लिए इंटरफ़ेस फ़ाइल में, और प्रोटोकॉल विधि सेट:

#import <UIKit/UIKit.h> 

@protocol CustomPicCellDelegate; 

@interface CustomPicCell : UITableViewCell <UITextInputTraits> { 

    UIButton *picButton; 
    ... 
    id<CustomPicCellDelegate> cellDelegate; 
} 

@property (nonatomic, retain) IBOutlet UIButton *picButton; 
... 
@property (nonatomic, assign) id<CustomPicCellDelegate> cellDelegate; 
... 
- (IBAction)getAPic; 

@end 

@protocol CustomPicCellDelegate <NSObject> 
- (void)getPhoto; 
@end 

UIButton getAPic विधि को झुका है आईबी में

#import "CustomPicCell.h" 

@implementation CustomPicCell 
@synthesize cellDelegate; 

... 

- (IBAction)getAPic { 
    NSLog(@"You are here ..."); 

    if (cellDelegate && [cellDelegate respondsToSelector:@selector(getPhoto)]) { 
     [cellDelegate getPhoto]; 
    } 
} 

प्रतिनिधि वर्ग इंटरफ़ेस मैं इसे सेट में:

कस्टम सेल के लिए कार्यान्वयन फ़ाइल में मैं विधि है कि स्पर्श के अंदर और प्रयास पर UIButton लक्ष्य प्रतिनिधि में प्रतिनिधि विधि कॉल करने के लिए रखा कस्टम सेल के लिए प्रतिनिधि के रूप में:

:

@interface DelegateClass : UIViewController < ... CustomPicCellDelegate> { 
... 

प्रतिनिधि वर्ग कार्यान्वयन में मैं UIImagePickerController खींचने के लिए प्रयास

मुझे पता नहीं लगा कि प्रतिनिधि कभी क्यों नहीं बुलाया जाता है! कृपया समझें कि मुझे यकीन है कि मुझे कुछ याद आया है लेकिन मैं दस्तावेज़ों और इन मंचों पर कई बार गया हूं और मुझे वह नहीं मिल रहा है जो मैं गलत कर रहा हूं। मैं कोड के अन्य हिस्सों में प्रतिनिधियों का उपयोग ठीक कर रहा हूं। यह एक स्थान काम नहीं करता है। क्या कोई मुझे दिखा सकता है कि मैं वसा-छूत क्या कर रहा हूं? धन्यवाद

+4

आप 'सेलडिलेगेट' कहां निर्दिष्ट करते हैं? –

+0

ओह मैं खुद को स्मैक कर सकता था! ओले बेगमैन आप 100% सही हैं। मैंने शपथ ली थी कि मैंने इसे सेट किया था। लेकिन मुझे लगता है कि देर रात कोडिंग मेरे दोस्त नहीं है। मैं लापता होने के लिए मूर्ख हूँ! आपका बहुत बहुत धन्यवाद। यह हल हो गया। मुझे लगता है कि सुबह में हमेशा तीन बार चेक करें। – addzo

+0

ओले, क्या आप कृपया अपना फिक्स साझा कर सकते हैं कि आपने सेलडिलेगेट को कैसे असाइन किया था? मेरे पास आपके जैसा ही कोड है और इसी तरह की समस्या थी जहां अन्य दृश्य नियंत्रकों में परिभाषित प्रतिनिधि विधियां पूरी तरह से काम कर रही हैं। हालांकि एक कस्टम UITableViewCell में परिभाषित प्रतिनिधि विधि को UITableViewController में नहीं कहा जा रहा था जो UITableViewCell का उपयोग कर रहा था। – Jason

उत्तर

18

आप ऐसा क्यों कर रहे हैं? सीधे UIViewController क्लास में आप इस तरह के बटन के लिए कार्रवाई असाइन कर सकते हैं।

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    [cell. picButton addTarget:self 
         action:@selector(getPhoto) 
       forControlEvents:UIControlEventTouchUpInside]; 
    // ... 
} 
+0

हाय प्रशांत क्या आपके पास इस दृष्टिकोण के बारे में कोई लिंक या अधिक जानकारी है? – Juan

+3

टैप किए गए बटन के सेल को ट्रैक करने का सबसे अच्छा तरीका क्या होगा? –

+0

मैं xib का उपयोग कर रहा हूं लेकिन बटन क्लिक ईवेंट केवल पहले सेल के लिए आग लगाता है .. अन्य कोशिकाओं के लिए नहीं .. किसी भी व्यक्ति को क्या गलत बता सकता है – saran