2009-12-04 18 views
9

में प्रारंभ में एक पंक्ति का चयन कैसे करें मुझे selectRowAtIndexPath:animated:scrollPosition: से पर कॉल करने के लिए एक अच्छी जगह नहीं मिल सकती है शुरुआत मेंUITableView में एक पंक्ति का चयन करें। टेबल व्यू कंट्रोलर प्रारंभ होने पर तालिका डेटा लोड नहीं किया गया है, इसलिए मैं अपने UITableViewController (प्रारंभिक अपवाद अधिकतर होता है) के प्रारंभ के बाद तत्काल चयन नहीं कर सकता।UITableView

उत्तर

6

आपको viewWillAppear: का उपयोग करने से पहले दृश्य की स्थिति को सेट करने के लिए उपयोग करने की आवश्यकता है, हर बार ऐसा प्रतीत होता है, भले ही दृश्य पहले ही प्रदर्शित हो चुका है। किसी UITabViewController या UINavigationViewController में कोई भी दृश्यमान दृश्य किसी भी समय अनलोड नहीं किया जा सकता है, इसलिए आप अपने राज्य को बनाए रखने के लिए एक गैर-दृश्यमान दृश्य पर भरोसा नहीं कर सकते हैं।

या, बेहतर नियंत्रण के लिए, loadView, viewDidLoad, और viewDidUnload लागू करें।

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

3

viewWillAppear:animated या viewDidAppear:animated कोशिश करें और ओवरलोड करें सुपर को भी कॉल करना सुनिश्चित करें।

selectRowAtIndexPath:indexPath animated:NO पर भी कॉल करना सुनिश्चित करें, यह समय विलंब के बिना चयन करेगा।

+1

मैंने इन्हें पहले से ही आजमाया है। लेकिन दुर्भाग्यवश, मुझे मैन्युअल रूप से UITableView को किसी अन्य दृश्य में सबव्यूव के रूप में जोड़ने की आवश्यकता है ताकि दृश्य नियंत्रक का दृश्य विल्लएपियर: लक्षित या देखेंडिडएपर: एनिमेटेड नहीं कहा जाएगा। इसके अलावा, प्रत्येक बार दृश्य का चयन "प्रारंभिक चयन" से अधिक होता है, और यह निर्धारित करने के लिए कि यह उपस्थिति पहला है या नहीं, एक अतिरिक्त ध्वज की आवश्यकता है। – an0

2

आप uitableview के cellforrowatindexpath विधि में चयनित कोई भी सेल सेट कर सकते हैं। Cell.selected = YES का उपयोग करके;