2012-03-10 14 views
6

के लिए दावा विफलता मुझे लगता है कि यह एक ऐसा मुद्दा है जिसके लिए विशेष ध्यान देने की आवश्यकता है ... मेरा Google-fu बहुत अच्छा है लेकिन मुझे कुछ भी उपयोगी नहीं मिला है।UITableView selectRowAtIndexPath

यह सबसे आसान बात है, और फिर भी मुझे यह पता लगाना प्रतीत नहीं होता कि समस्या क्या है।

मेरे पास UITableView है। यह एक सबव्यूव है कि मेरे वीसी _form कहते हैं। मैं इसे स्टाइलिंग उद्देश्यों के लिए उपयोग कर रहा हूं, वास्तव में डेटा प्रदर्शित नहीं करना। इसमें 2 कोशिकाएं हैं।

एक निश्चित घटना पर, मैं selectRowAtIndexPath का उपयोग करके एक अलग सेल का चयन करने की कोशिश कर रहा हूं: एनिमेटेड: scrollPosition।

जब मैं ऐसा करता हूं, तो यह सिगबर्ट्स।

एक साधारण उदाहरण:

- (IBAction)submitClicked:(id)sender 
{ 
    [_submit setTitle:@"Wha!?" forState:UIControlStateNormal]; 
    NSIndexPath *row = [NSIndexPath indexPathWithIndex:0]; 
    NSLog(@"%d", [[_form indexPathForSelectedRow] row]); 
    [_form selectRowAtIndexPath:row animated:YES scrollPosition:YES]; 
} 

बटन का शीर्षक बदल जाता है, और तालिका प्रिंट है जो चयनित पंक्ति 0 या 1, लेकिन वांछित सेल का चयन करने की कोशिश कर रही है, यह टूटता:

2012-03-09 21:57:39.905 <omitted>[16329:207] 0 
2012-03-09 21:57:39.908 <omitted>[16329:207] *** Assertion failure in -[NSIndexPath row], /SourceCache/UIKit_Sim/UIKit-1912.3/UITableViewSupport.m:2598 
(gdb) 

मेरी धारणा यह है कि इसका तात्पर्य है कि मेरी तालिका कैसे कॉन्फ़िगर की गई है, लेकिन मुझे यकीन नहीं है कि क्या कुछ गलत है। सामान्य रूप से तालिका में सेल्स का चयन करना (इसे क्लिक करना) काम कर रहा है, जैसा कि मेरी तालिका में अपेक्षित प्रतिक्रिया द्वारा इंगित किया गया है: didSelectRowAtIndexPath। बाकी सब कुछ ठीक काम करता है कि मैंने इसे कैसे स्थापित किया है, इसके अलावा।

(इसके अलावा, मैं अन्य लोगों को, अतिरिक्त डिबग जानकारी के साथ उत्तर देने ही नहीं, "(gdb)"। मैं इस कैसे प्राप्त कर सकते हैं)

धन्यवाद!

उत्तर

18

टेबलव्यू सेल के लिए एक इंडेक्सपाथ में एक पंक्ति और एक अनुभाग होना आवश्यक है। फ़ैक्टरी विधि (NSIndexPath UIKit Additions में परिभाषित) का उपयोग करके अपना इंडेक्स पथ बनाने का प्रयास करें:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 
[_form selectRowAtIndexPath:indexPath animated:YES scrollPosition:YES]; 
+0

धन्यवाद, वाह जो निराशाजनक है। कोड संकेत देने से मुझे बहुत कुछ भरोसा करने के लिए यही मिलता है। यह कभी भी सुझाव नहीं दिया। > :-( – Liandri