2017-04-12 1 views
0

Dans mon contrôleur de vue, j'ajoute une barre de recherche par programme et il apparaît exactement comme je veux, mais quand je clique dessus, ne rien faire ne peut pas écrire/taper quoi que ce soit sur le barre de recherche, Et il n'y a pas d'erreur sur le journal. J'ai ajouté la barre de recherche dans une autre vue contrôleur de la même manière, cela fonctionne mais dans ce particulier, il ne fonctionne pas. Je pousse ce contrôleur de vue du contrôleur de vue précédente de sorte qu'il a un bouton de navigation arrière sur la gauche (vérifiez l'image) cela fonctionne aussi.UISearchController barre de recherche apparaît mais ne fonctionne pas/déclenchement

Dans le contrôleur de vue, il y a une TableView et une CollectionView que je veux ajouter la recherche pour la vue de la table. Je me demandais s'il y avait quelque chose à voir avec avoir les deux dans le même contrôleur de vue.

Code pour ajouter la barre de recherche

- (void)viewDidLoad { 
    //other stuff on view controller 
    [self setSearchView]; 
} 

-(void)setSearchView{ 
    //searchController is added as a property on .h file 
    //and all the delegate are also added 
    //@property (strong, nonatomic) UISearchController *searchController; 

    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil]; 
    self.searchController.searchResultsUpdater= self; 
    self.searchController.dimsBackgroundDuringPresentation = NO; 
    self.searchController.searchBar.delegate = self; 
    self.navigationController.toolbarHidden=YES; 

    self.navigationItem.titleView=self.searchController.searchBar; 

    self.searchController.hidesNavigationBarDuringPresentation = NO; 
    self.definesPresentationContext = YES; 
} 

Je viens à ce contrôleur de vue d'un contrôleur de vue précédent et en poussant ce contrôleur de vue quand un bouton est cliqué .and que je suis en utilisant le fichier nib
action Bouton

- (void)ButtonClicked { 
    MYNextViewController *nextViewController = [[MYNextViewController alloc] initWithNibName:@"MYNibFileName" bundle:nil]; 

    // I also have a tab bar on the bottom which i am hiding for that view controller when pushing 
    nextViewController .hidesBottomBarWhenPushed=YES; 

    [self.navigationController pushViewController:nextViewController animated:YES]; 
} 

image:
enter image description here

Toute aide sera grandement appréciée. Espoir que je fait mon auto clair ...

+1

Essayez d'utiliser afficher herrachy debug et voir si quelque chose bloque cette barre de recherche ou non – Tj3n

+0

Peut-être qu'il y a un problème sur la hiérarchie, je ne trouve rien d'autre. Je jetterai un coup d'oeil ..tnx –

+0

Avez-vous essayé '[_ searchController becomeFirstResponder];' dans la méthode 'searchBarTextDecBeginEditing' – Shahrukh

Répondre

1

Enfin j'ai pu résoudre ce problème avec un changement de vue hiérarchique grâce à @ Tj3n, mais pas sûr que cela est la bonne solution mais en ce moment son travail .. je devais également supprimer cette ligne et ajouter quelques codes à d'autres fins

self.definesPresentationContext = YES; //removed... 

répondre aussi aux questions that utile

0

// S'il vous plaît utiliser ce code

_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, self.navigationController.navigationBar.bounds.size.height)]; 
_searchBar.tintColor = [UIColor blueColor]; 

//[_searchBar setImage:[UIImage imageNamed:@"cross_icon"] forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal]; 
_searchBar.placeholder = @"Enter drug name"; 
//_searchBar.showsBookmarkButton = YES; 
_searchBar.barTintColor = [UIColor clearColor]; 

UITextField *txfSearchField = [_searchBar valueForKey:@"_searchField"]; 
txfSearchField.backgroundColor = [UIColor whiteColor]; 
txfSearchField.tintColor = [UIColor blackColor]; 
txfSearchField.textColor = [UIColor blackColor]; 
_searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
_searchBar.delegate = self; 
_searchBar.showsCancelButton = NO; 
[_searchBar becomeFirstResponder]; 
[self.navigationController.navigationBar addSubview:_searchBar]; 
+0

Je ne sais pas comment est votre réponse liée à mon problème –