2010-03-19 38 views
7

मुझे अपने ऐप में एक दृश्य मिला है जो काफी कुछ करता है, और मुझे यह पसंद है। समस्या यह है कि यह 5 या 6 अलग-अलग प्रतिनिधियों को लागू कर रहा है, जो थोड़ा गन्दा लगता है।एकाधिक प्रतिनिधियों को कैसे संभालें

मेरा सवाल है, क्या दृश्य नियंत्रक को सभी प्रतिनिधियों को लागू करना है? या क्या कोई तरीका है कि मैं अलग-अलग फ़ाइलों में कोड को अलग कर सकता हूं (बिना किसी बड़े पुनर्गठन या पुनर्लेखन के)?

@interface MyView : UIViewController <UIScrollViewDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIActionSheetDelegate, MFMailComposeViewControllerDelegate> 

उत्तर

12

कोई समस्या नहीं है:

यहाँ सब प्रतिनिधियों कार्यान्वयन के लिए मैं कर रहा हूँ है। समाधान उद्देश्य-सी श्रेणियां है। आप एक अलग स्रोत फ़ाइल में इस डाल सकते हैं:

#import "MyView.h" 
@implementation MyView (UIScrollViewDelegate) 
// scroll view delegate method implementations go here 
@end 

एक अच्छा सम्मेलन इस फाइल "MyView + UIScrollViewDelegate.m" नाम के लिए है। जिन तरीकों को आप यहां परिभाषित करते हैं वे वैसे ही व्यवहार करेंगे जैसे कि उन्हें "MyView.m" में परिभाषित किया गया था।

प्रोटोकॉल के नाम से मेल खाने के लिए श्रेणी के नाम की आवश्यकता नहीं है। आप इसे किसी भी तरीके से सेट कर सकते हैं और अपनी पसंद के किसी भी श्रेणी का नाम इस्तेमाल कर सकते हैं।

+0

कूल, मैं इसे आज़माउंगा, धन्यवाद! –

+0

मुझे अपना कोड साफ़ करने के लिए इसमें दिलचस्पी है। क्या आपको "MyView + UIScrollViewDelegate.h" भी होना चाहिए। यदि हाँ यह कैसा दिखता है? – tiguero

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