Я использую контроллер UItableView, я не могу добавить панель поиска в панель навигации. я хочу, чтобы поисковая панель появилась, когда нажата кнопка поиска на панели навигации. Как добавить кнопку поиска и строку поиска на панели навигации.Хотите добавить панель поиска на панели навигации, когда кнопка поиска нажата на панели навигации
0
A
ответ
-1
Для кнопки поиска вы можете использовать UIBarButtonSystemItemSearch, если это необходимо.
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemSearch
target:self
action:@selector(actionSearch:)];
и вы можете установить SearchBar как вид титульной Панели навигации
self.navigationItem.titleView = mySearchBar;
0
добавить это при нажатии кнопки мыши => .m файл:
UISearchBar *sBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,10,self.navigationController.navigationBar.bounds.size.width,self.navigationController.navigationBar.bounds.size.height/2)];
sBar.delegate = self;
[self.navigationController.navigationBar addSubview:sBar];
и добавить => .h файл
@interface ViewController : UIViewController<UISearchBarDelegate>
0
, чтобы сделать поискba Для этого вам нужно вставить Button в контроллер навигационной панели и установить фоновое изображение как search.png
(ваше изображение). поэтому, когда пользователь нажмет на эту кнопку, установите цель, так как searchbar
будет открыт. пожалуйста, проверьте ниже код для справки.
Прежде всего, установите делегатский метод в вас .h
файл.
@interface FriendsViewController : UIViewController <UISearchDisplayDelegate,UISearchBarDelegate,UIAlertViewDelegate>
@property (nonatomic, strong) UIButton *searchButton;
@property (nonatomic, strong) UIBarButtonItem *searchItem;
@property (nonatomic, strong) UISearchBar *searchBar;
@property (strong, nonatomic) UISearchController *searchController;
@property (strong, nonatomic) UISearchDisplayController *d1;
затем введите кнопку в своем навигационном баре.
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(279,9,25, 25)];
[btn setImage:[UIImage imageNamed:@"search"] //put here your searchimage
forState:UIControlStateNormal];
[btn setTitle:@"" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(clickme:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *barbtn=[[UIBarButtonItem alloc]initWithCustomView:btn];
self.tabBarController.navigationItem.rightBarButtonItem=barbtn;
[self.tabBarController.navigationController.navigationBar setHidden:NO];
Теперь вы должны установить searchcontroller на clickme
ваш метод кнопки.
- (IBAction)clickme:(id)sender{
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 300, 44.0)];
searchBar.autoresizingMask =0;
searchBar.delegate = self;
searchBar.placeholder = @"Search for items...";
searchBar.showsScopeBar=YES;
UIView *searchBarWrapper = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
searchBarWrapper.autoresizingMask = 0;
[searchBarWrapper addSubview:searchBar];
self.searchItem = [[UIBarButtonItem alloc] initWithCustomView:searchBarWrapper];
self.tabBarController.navigationItem.leftBarButtonItem = self.searchItem;
self.navigationItem.rightBarButtonItem = nil;
self.navigationItem.titleView = nil;
////////////// ~ Search Display Controller as Object ~/////////////////////////////
self.d1 = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
self.d1.delegate = self;
self.d1.searchResultsDataSource = self;
self.d1.searchResultsDelegate = self;
self.d1.searchResultsTableView.rowHeight = 40;
self.d1.displaysSearchBarInNavigationBar = YES;
self.searchBar.translucent = NO;
self.searchBar.barTintColor = [UIColor grayColor];
self.d1.searchBar.tintColor = [UIColor blueColor];
[searchBar sizeToFit];
}
при нажатии на значок поиска
Вы используете раскадровки или иметь его в коде? – Kuba
Я использую раскадровку – Vishal