6

मैं एक UISearchDisplayController का उपयोग UISearchBar के साथ कर रहा हूं। मैं आईबी का उपयोग कर मेरे एप्लिकेशन में इस UISearchBar रख दिया और मैं:UISearchDisplayController स्वचालित रूप से सामग्री खोज परिणाम प्रदर्शित करने के लिए एक UIPopovercontroller बनाता है? इसे कैसे खारिज करें?

alt text http://img6.imageshack.us/img6/1985/screenshot20100701at156.png

ललित: जब आप टेप शुरू करते हैं, परिणाम popovercontroller जादुई प्रकट होता है (मैं इसे प्रदर्शित करने के लिए अपने दम पर कुछ भी नहीं लिखा था!)

तब, जब एक पंक्ति परिणाम में क्लिक किया जाता है, मैं इस स्तर पर PopoverController लेकिन खारिज करना चाहते, मैं अपने पक्ष पर UIPopoverController instantiated कभी नहीं: प्रतीत होता है वहाँ UISearchDisplayController कि स्वचालित रूप से में एक समझाया व्यवहार है जैसे अगर के अंदर searchContentsController लपेटता है। यह वास्तव में बहुत अच्छा है क्योंकि सब कुछ सिवाय इसके कि मैं इसे :(

किसी को कैसे इस "जादुई" बनाया UIPopoverController के संदर्भ में प्राप्त करने के लिए पता है खारिज करने के लिए इस UIPopoverController के संदर्भ में प्राप्त कर सकते हैं कुछ भी करने के बिना पूरी तरह से काम करता है? (इस यह प्रमाण है कि आईपैड वास्तव में एक "जादुई" डिवाइस है;)

मैंने सोचा कि यूआईपीओवर कंट्रोलर की सामग्री कंट्रोलर (उदाहरण के लिए इसकी मूल संपत्ति के माध्यम से) का संदर्भ होगा, लेकिन मुझे पॉइंटर प्राप्त करने का कोई तरीका नहीं मिल रहा है इसके लिए:/

+0

मैं भी पहले प्रत्युत्तर के रूप में खोज पट्टी इस्तीफा देने के लिए कोशिश की, लेकिन पॉपओवर दिखाई देती रहती है :( – yonel

उत्तर

11

क्या [searchDisplayController setActive:NO animated:YES]; तब काम नहीं करता है?

+0

क्या आप जानते हैं? मैंने बस कोशिश करने के बारे में सोचा लेकिन पहले, मैंने जांच की कि किसी ने प्रश्न का उत्तर दिया है या नहीं एन एसओ और हाँ, आप सही हैं, यह काम करता है! मुझे समय सीमा से पहले आपको +100 देने में खुशी हुई! : पी – yonel

+1

खुशी है कि मैं मदद कर सकता हूं। मैंने यह भी जांच नहीं की थी कि यह काम करता है, लेकिन सिर्फ ऐप्पल के डेवलपर दस्तावेज़ीकरण को देखा। ;) – jrtc27

+0

धन्यवाद! यह पूरी तरह से काम किया! – ArtSabintsev

0

क्या आप इस बारे में कुछ और विवरण जोड़ सकते हैं कि आप कैसे हैं ई आईबी में UISearchDisplayController वायर्ड? यह आईपैड पर यूआईपीओवर कंट्रोलर के साथ कुछ भी विशेष नहीं करता है, इसलिए मुझे लगता है कि आपने खोज कंटेंट कंट्रोलर को एक नियंत्रक को सेट किया है जो यूआईपीओवर कंट्रोलर है? यदि ऐसा है तो आपके पास पहले से ही आवश्यक संदर्भ है, हालांकि आम तौर पर आपको इस दृश्य को खारिज करने की आवश्यकता नहीं है, जब आप खोज रद्द करते हैं तो यह आपके लिए खारिज कर दिया जाता है।

+0

UISearchDisplayController कुछ विशेष के साथ तार नहीं है: http://bit.ly/ बीईएसजेटीटी मैंने एक बहुत ही बुनियादी एक्सकोड प्रोजेक्ट अपलोड किया है जो http://bit.ly/aG3qAY पर उपयोग केस को अलग करता है। यह सिर्फ यूआईएसयूआर डिस्प्ले कंट्रोलर के साथ स्प्लिट व्यू कंट्रोलर प्रोजेक्ट उदाहरण है। इस प्रोजेक्ट में, कोई यूआईपीओवर कंट्रोलर तत्काल नहीं है:/SearchContentController को UIViewController पर सेट किया गया है, न कि UIPopoverCntroller पर। – yonel

1

ऊपर समाधान में से कोई भी मेरे लिए काम किया है, लेकिन मैं इस के साथ इसे हल:

[self.searchDisplayController setActive:NO animated:YES]; 
    [searchBar becomeFirstResponder]; 

इस तरह कर्सर क्षेत्र में रहता है लेकिन पॉपओवर खारिज किया जाता है, जब कोई परिणाम हैं।

पूर्ण कोड:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { 
    if ([searchText isEqualToString:@""]) { 
     [self.searchDisplayController setActive:NO animated:YES]; 
     [searchBar becomeFirstResponder]; 
    } 
}