2015-02-23 11 views
9

मैं iOS 8 में UISearchController उपयोग कर रहा हूँ एक दृश्य नियंत्रक के viewDidLoad में निम्नलिखित intializaiton एक टैब नियंत्रकUISearchController नियंत्रक काला

_searchController = [[UISearchController alloc] initWithSearchResultsController:nil]; 

    _searchBar = _searchController.searchBar; 
    [_searchController.searchBar sizeToFit]; 
    _searchController.searchBar.delegate = self; 
    _searchController.searchResultsUpdater = self; 
    _searchController.dimsBackgroundDuringPresentation = NO; 
    _searchController.hidesNavigationBarDuringPresentation = NO; 
    self.definesPresentationContext = NO; 
    _shopsTable.tableHeaderView = _searchController.searchBar; 

मैं

- (void) updateSearchResultsForSearchController:(UISearchController *)searchController और (void)filterContentForSearchText:(NSString *)searchText

को क्रियान्वित किया है में एम्बेडेड के साथ बनाता है

और खोज कार्य करता है, तालिकादृश्य ठीक से अपडेट हो जाता है, आदि

परंतु!

यदि मैं खोज नियंत्रणकर्ता सक्रिय है (केवल खोज बार या कुछ पाठ के साथ) को एक अलग टैब पर टैब स्विच करता हूं, और फिर teh खोज टैब पर वापस जाता हूं, तो मुझे केवल खोज बार के साथ एक खाली स्क्रीन मिलती है, जैसे इस

enter image description here

इस मामले में, मैं चीजें हैं जो lar के साथ शुरू है, जो परिणाम वापस किया था और उन्हें correcly दिखाया गया के लिए खोज। लेकिन अगर मैं टैब स्विच करता हूं, और खोज टैब पर वापस जाता हूं तो मुझे इस तरह की एक खाली स्क्रीन मिलती है। नियंत्रक अपने मूल स्थिति में लौटने का एकमात्र तरीका है यदि मैं _searchController.active = NO करता हूं। लेकिन यदि उपयोगकर्ता उस खोज को सक्रिय रखना चाहता है, तो मैं इसे निष्क्रिय नहीं कर सकता।

मुझे यकीन है कि मैं कुछ याद आ रही है, लेकिन बाद से वहाँ UISeachController में करने के लिए काफी नहीं है, मैं यह है कि क्या कारण है को समझ नहीं सकता हूँ ..

+0

कर सकते हैं आप कृपया नमूना उद्देश्य सी कोड प्रदान करें, मैं एक ही मुद्दे से अटक गया हूँ? मैं आईओएस विकास के लिए बहुत नया हूँ। मेरे पास खोज के साथ-साथ मुख्य सूची के लिए अलग दृश्य नियंत्रक है। क्या यह समस्या है। – Amith

उत्तर

20

प्रयास करें self.definesPresentationContext = हाँ; NO के बजाय। यहां बताया गया है कि मैंने अपना UISearchController कैसे सेटअप किया है, लेकिन मैंने इसे पहले UITabBarController में नहीं किया है।

func setupSearchController() { 
    let resultsController = UIStoryboard(name: "ATPageTableViewController", bundle: nil).instantiateViewControllerWithIdentifier("ATPageTableSearchResultsViewController") as! ATPageTableSearchResultsViewController 
    searchController = UISearchController(searchResultsController: resultsController) 
    searchController.delegate = self 
    resultsController.delegate = self 
    resultsController.cellIdentifier = ATDataSetItemTableViewCellIdentifier; 
    resultsController.table = self.table! 
    searchController.searchBar.sizeToFit() 
    self.tableView.tableHeaderView = searchController.searchBar 
    searchController.searchResultsUpdater = self 
    searchController.searchBar.delegate = self 
    definesPresentationContext = true 

} 
+1

धन्यवाद, यह सीधे मेरी मदद नहीं करता है लेकिन यह मुझे समस्या का कारण बन गया। मैंने तालिका प्रतिनिधियों के साथ एक व्यू कंट्रोलर का उपयोग किया, और एक बार जब मैंने टेबलव्यू कंट्रोलर पर स्विच किया, तो समस्या हल हो गई .. –

0

नीचे दिए गए कोड को देखें डीडलोड मैहटोड।

self.definesPresentationContext = सच

searchController.searchResultsUpdater = आत्म

searchController.searchBar.delegate = आत्म

searchController.dimsBackgroundDuringPresentation = false searchController.definesPresentationContext = सच

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