2011-02-08 15 views
21

वर्तमान में मैं didSelectRowAtIndexPath प्रतिनिधि के अंदर कुछ काम करता हूं और देखा कि बाद में दृश्य नियंत्रक पर वापस आने के बाद भी मेरी पंक्ति अभी भी "चयनित" है।didSelectRowAtIndexPath का उपयोग करके कुछ कार्रवाई करने के बाद UITableViewCell को कैसे अचयनित करें?

मैं प्रतिनिधि के अंदर इस पंक्ति को कैसे अनदेखा कर सकता हूं?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    //do logic and ... it remains selected in the view? 
} 

उत्तर

50
[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
37

आमतौर पर, आप पंक्ति को अचयनित करना चाहते दृश्य नियंत्रक फिर से दिखाई देता है:

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES]; 
} 

कि क्या UITableViewController परोक्ष करता है, और अचयन प्रक्रिया एनिमेट दृश्य नियंत्रक फिर से है प्रकट होता है के बाद उपयोगकर्ता को एक उपयोगी संकेत के रूप में उन्होंने पहले किस सेल को चुना था।

+0

मुझे लगता है कि 'viewWillAppear:' का उपयोग करना बेहतर है ताकि उपयोगकर्ता चयनित पंक्ति को संक्षेप में नहीं देख सके – doctorBroctor

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