2012-01-20 14 views
5

मेरे पास 2 कक्षाएं हैं जो UITableViewControllers को प्राप्त करती हैं। और इन दो टेबल दृश्यों को एक ही कस्टम UITableViewCell का उपयोग करना चाहिए। तो मैं दो अलग-अलग वर्गों में एक निब फ़ाइल से एक कस्टम UITableViewCell का उपयोग कैसे कर सकता हूं? Xib का मालिक केवल 1 वर्ग हो सकता है।आईफोन: दो टेबल दृश्यों में UITableViewCell का उपयोग कैसे करें

@interface Class1 : UITableViewController<UITableViewDataSource, 
    UITableViewDelegate> { 
UITableViewCell *myCustomTableRow; 
} 

@property (nonatomic, retain) IBOutlet UITableViewCell *myCustomTableRow; 





@interface Class2 : UITableViewController<UITableViewDataSource, 
    UITableViewDelegate> { 
UITableViewCell *myCustomTableRow; 
} 

@property (nonatomic, retain) IBOutlet UITableViewCell *myCustomTableRow; 

उत्तर

3

बनाएँ UITableViewController उप-वर्ग CommonTableView का कहना है। इसे nib फ़ाइल के मालिक के रूप में बनाएं। फिर उन दो वर्गों का उत्तराधिकारी बनाएं जिन्हें आप CommonTableView कक्षा से कार्यान्वित करना चाहते हैं। यह ठीक काम करेगा।

+0

हाँ, अच्छा विचार..धन्यवाद – Jim

0

मेरी राय के आधार पर, आप और कस्टम सेल बनाने के लिए और अन्य तालिका के लिए आपको लगता है कि के लिए केवल XIB बना सकते हैं और ज और .m फ़ाइल एक ही उपयोग करने के लिए होना चाहिए चाहिए ...

बस XIB में परिवर्तन नियंत्रक ...

आप समझ आशा है कि ..

इस How to create Customcell और this

+0

मुझे यह नहीं मिला। आप UITableViewCell (Lats नामक कस्टमसेल क्लास) से प्राप्त वर्ग बनाने के लिए मीन बनाते हैं, और वह वर्ग xib के मालिक के रूप में होगा? और कक्षा 1 और कक्षा 2 में केवल कस्टमसेल क्लास का उदाहरण बनाएं? – Jim

0

उपयोग UINib class देखें । यह माता-पिता के बिना तत्कालता की अनुमति देता है, और nib फ़ाइल सामग्री को कैशिंग करके प्रदर्शन में भी सुधार करता है।

@interface Class1 : UITableViewController<UITableViewDataSource, UITableViewDelegate> { 
    UINib *myCustomCellNib; 
} 

... और कक्षा 2 के लिए इसी तरह की बात। फिर, viewDidLoad

में
myCustomCellNib = [UINib nibWithNibName:@"myCustomCellNibName" bundle:nil]; 

तब, जब सेल बनाने:

NSArray* objects = [myCustomCellNib instantiateWithOwner:nil options:nil]; 
// given that your cell is defined as a first object in your nib 
cell = [objects objectAtIndex:0]; 
संबंधित मुद्दे