के बीच क्या अंतर है कभी-कभी मैं कुछ ऐप विस्तृत अनुकूलन के लिए UIViewController को उपclass करना चाहता हूं। उदाहरण के लिए। ऐसा कुछ जो नियंत्रकों को देखने के दौरान प्रदर्शन करना चाहिएDidLoad या viewWillAppear या तो।UIViewController और UITableViewController
स्वाभाविक रूप से मैं UIViewController को उप-वर्गीकृत करता हूं और वहां से जाता हूं और सभी दृश्य नियंत्रक उस से प्राप्त होते हैं। लेकिन कुछ नियंत्रक टेबल चलाते हैं। और उस उद्देश्य के लिए डिज़ाइन किया गया UITableViewController है।
तो मैं UITableViewController को भी उपclass और बस वही चीजें करते हैं। जो ओओपी शर्तों में सबसे बुद्धिमान बात नहीं प्रतीत होता है। और कोई एकाधिक वंशानुक्रम आदि
है और जैसा कि UITableViewController UIViewController से विरासत ...
अब क्यों मैं सिर्फ अपने ही तालिका दृश्य नियंत्रक कि मेरे बहुत ही दृश्य नियंत्रक से विरासत का निर्माण नहीं करतीं मैं अपने आप को पूछ रहा हूँ सबक्लास और सभी टेबल सामान जोड़ता है। लेकिन क्या है "सभी टेबल सामान"?
- कंकाल कोड है जो xcode प्रत्येक नए तालिका दृश्य नियंत्रक को जोड़ता है। काफी आसान लेकिन इसे आसानी से कोड स्निपेट में ले जाया जा सकता है।
- प्रोटोकॉल UITableViewDelegate और UITableViewDataSource की घोषणा है। आरामपसंद। उन विधियों के कार्यान्वयन को किसी भी तरह UITableViewController के प्रत्येक उप-वर्ग में पालन करना होगा।
- प्रोटोकॉल में उन सभी अनिवार्य तरीकों के संभावित डिफ़ॉल्ट कार्यान्वयन संभवतः हैं। heightForRowAtIndexPath के लिए या नहीं के बराबर titleForHeaderInSection या 44.0f के लिए: इस तरह के numberOfSectionsInTableView के लिए 0 लौटने के रूप में (। हालांकि बुरा उदाहरण हो सकता है लागू करने होशियार बिल्कुल नहीं है कि)
तो स्पष्ट सामान के बावजूद, वहाँ किसी भी चमत्कार कि UITableViewController लेता हैं की देखभाल?
उत्तर देने वाले सभी के लिए धन्यवाद। यह इस निश्चित वास्तुकला के फैसले पर बहुत मदद करता है। –