ios - Add UISearchBar to UITableView programmatically not working -
पृष्ठभूमि: मेरे पास UIViewController
है, जब लोड होता है एक UITableView
जेनरेट किया गया प्रोग्रामेटिक रूप से इसका डेटा SQLite3
डेटाबेस से मिलता है यह ठीक काम करता है
समस्या: मुझे एक UISearchBar
(और संबद्ध तर्क) जोड़ना होगा, लेकिन जब मैं कोशिश करता हूं, UISearcBar प्रस्तुत नहीं किया जाता है।
.h फ़ाइल:
#import & lt; UIKit / UIKit.h & gt; #import "sqlite3.h" #import "Exhibitor.h" @interface ExhibitorViewController: UIViewController & LT; UITableViewDataSource, UITableViewDelegate, UISearchBarDelegate, UISearchDisplayDelegate & gt; {Sqlite3 * कांग्रेस डीडी; NSMutableArray * खोजडेटा; UISearchBar * searchBar; UISearchDisplayController * searchDisplayController; } @ प्रॉपर्टी (मजबूत, नॉनैटोमिक) आईबीओटलेट यूआईटीबल्यूव्यू * टेबलव्यू; - (NSString *) filePath; - (शून्य) openDB; @end
.m फ़ाइल जहां UISearchBar को जोड़ा गया है:
- (शून्य) loadTableView {CGRect usableSpace = [[UIScreen मुख्य स्क्रीन] applicationFrame]; CGFloat उपयोग करने योग्य Width = प्रयोज्यस्पेस.size.width; CGFloat प्रयोग करने योग्यहैइट = प्रयोज्यस्पेस.size.height; UITableView * tableView = [[UITableView alloc] init]; [टेबलव्यू सेटफ़्रेम: सीजीआरएक्टमेक (0,0, उपयोग योग्यउद्दिष्ट, प्रयोग करने योग्यहैइट)]; TableView.dataSource = self; TableView.delegate = self; [Self.view addSubview: tableView]; सर्चबार = [[UISearchBar alloc] initWithFrame: CGRectMake (0, 0, 320, 64)]; SearchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar: searchBar सामग्री नियंत्रक: स्वयं]; SearchDisplayController.delegate = self; SearchDisplayController.searchResultsDataSource = self; Self.tableView.tableHeaderView = searchBar; // मुझे लगता है कि यह खोज बार लोड हो जाना चाहिए था लेकिन // नहीं करता है [self.tableView setTableHeaderView: searchBar]; // ने भी यह कोशिश की है [// self.tableView.tableHeaderView addSubview: searchBar]; // और यह एनएसएलॉग (@ "सर्चबार =% @", सर्चबार); // यह खोज से पता चलता है कि बार्स एनएसएलॉग के मूल्यों वाला एक ऑब्जेक्ट है (@ "हैडर वीव =% @", सेस्चैटेबल वीवटेबलहाइटरव्यू); // यह tableHeaderView को शून्य के रूप में दिखाता है ?? }
मैं क्या कर रहा हूँ गलत? UITewController
के अंतर्गत UITableView
में UISearchBar
प्रोग्राममैटी जोड़ने के लिए मुझे क्या करने की आवश्यकता है?
आपको इसके बजाय UITableViewController
का उपयोग करना चाहिए ...
.h
<पूर्व> @ इंटरफेस एक्सबिजिटर दृश्यकंट्रोलर: UITableViewController & lt; UISearchBarDelegate, UISearchDisplayDelegate & gt; {Sqlite3 * कांग्रेस डीडी; NSMutableArray * खोजडेटा; UISearchBar * searchBar; UISearchDisplayController * searchDisplayController; } - (NSString *) filePath; - (शून्य) openDB; @end
। मी
- (शून्य) लोडटेबलदृश्य {searchBar = [[UISearchBar alloc] initWithFrame: CGRectMake (0 , 0, 320, 64)]; SearchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar: searchBar सामग्री नियंत्रक: स्वयं]; SearchDisplayController.delegate = self; SearchDisplayController.searchResultsDataSource = self; Self.tableView.tableHeaderView = searchBar; }
समस्या यह है कि आप एक तालिका दृश्य बना रहे थे लेकिन इसे संपत्ति के लिए निर्दिष्ट नहीं कर रहे हैं, और UITableViewController
का उपयोग करके चीज़ें बहुत आसान बना देती हैं ...
यदि आप इसे अब जिस तरह से रखना चाहते हैं, तो आप बस self.tableView = tableVew;
के बाद [self.view addSubview: tableView] डाल सकते हैं;
...
Comments
Post a Comment