2009-07-02 17 views
31

मैंने एक UITableViewController डाला है और यह एक साधारण आईबी दस्तावेज़ में संबंधित UITableView है। लक्ष्य अन्य "सामान" (वास्तव में कुछ भी) तालिका के साथ एक माता-पिता UIWindow (या UIView) के अंदर UITableView को शामिल करना है। इंटरफेस बिल्डर में ऐसा क्या हो सकता है।क्या आप एक अन्य दृश्य में UITableViewController के TableView जोड़ सकते हैं?

enter image description here

मैं यह कई बार कोशिश की है और हमेशा एक ही जगह पर मिलता है।

  1. UITableViewController का कार्यकारी उपवर्ग डेटा
  2. अनुकूलित UTableView से भर बनाएँ और इसे टैप लक्ष्यों सहित कोशिकाओं है
  3. UITableViewController से बाहर
  4. खींचें UITableView एक आईबी दस्तावेज़ में नव निर्मित UITableViewController जोड़ें और मुख्य UIView
  5. UITableViewController को UITableView
  6. पर वायर करें नोट: कोड परिणामों में UITableViewController को एक ही प्रो में जोड़ना ब्लेम

आईफोन एमुलेटर में या डिवाइस पर ऐप चलाने पर तालिका सही तरीके से प्रदर्शित होती है, लेकिन पहली बार आप कोशिश करते हैं और इसके साथ बातचीत करते हैं। एक स्क्रॉल, एक टैप, कुछ भी ऐप को दुर्घटनाग्रस्त करता है। यह एक प्रतिनिधि समस्या प्रतीत होता है, जैसे UITableView को पता नहीं है कि UITableViewController पर वापस संवाद कैसे करें, लेकिन मुझे नहीं पता कि समस्या को कैसे ठीक किया जाए।

अब तक मैं तालिका को अनुकूलित करके प्राप्त करने में सक्षम हूं, जो कि पर्याप्त लेआउट प्राप्त करने के लिए हैडर, लेकिन मैं वास्तव में अन्य तकनीक का काम करना पसंद करूंगा।

उत्तर

32

आप सही रास्ते पर हैं! यहां आपको यह करने की आवश्यकता है:

  1. इसके साथ-साथ दृश्य xib के साथ एक मानक UIViewController सबक्लास बनाएं।

  2. XIB में एक UITableView जोड़ें।

  3. वायर सबकुछ ऊपर। व्यू कंट्रोलर आपकी तालिका के लिए प्रतिनिधि और डेटासोर्स होगा, इसलिए आपको दोनों प्रोटोकॉल लागू करना होगा।

  4. अपने कार्यान्वयन फ़ाइल में जोड़ने tableview के लिए आवश्यक आवश्यक डेटा स्रोत और प्रतिनिधि तरीकों के सभी:

    MyViewController.h:

    (UITableViewCell *)tableView:(UITableView *)tv 
        cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    

आपका हेडर फाइल कुछ इस तरह लग सकता है

@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> 
{ 
    IBOutlet UITableView *myTableView; 
    //This outlet is only necessary if you need to send messages to the table view (such as reloadData) 
} 
@end 

ऐसा करना चाहिए!

+0

एक आकर्षण की तरह काम किया, धन्यवाद! –

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