IOS: - Всякий раз, когда я перехожу к другому методу делегата панели поиска VC, не вызывается и не отображается кнопка отмены панели навигации в задаче C - PullRequest
0 голосов
/ 28 января 2019

Когда я захожу в VC и нажимаю NavigationBar SearchBar, то вызывается метод Delegate, и он показывает мне кнопку отмены, когда я перехожу к любому другому VC, возвращаюсь к этому VC и нажимаю на панели поиска, он не называется методом делегата и непокажите кнопку отмены. Пожалуйста, помогите мне Спасибо

Мой код: -

-(void)setUPSeachBar{
     self.automaticallyAdjustsScrollViewInsets = NO;
     self.searchControllerInvoice.dimsBackgroundDuringPresentation = true;
     self.definesPresentationContext = YES;
     self.searchControllerInvoice = [[UISearchController alloc] initWithSearchResultsController:nil];
     self.searchControllerInvoice.searchResultsUpdater = self;
     self.searchControllerInvoice.delegate = self;
     [self.searchControllerInvoice setObscuresBackgroundDuringPresentation:NO];
     if (@available(iOS 11.0, *)) {
          self.navigationItem.searchController = self.searchControllerInvoice;
          self.navigationItem.searchController.searchBar.delegate = self;
          //          [self.navigationItem setHidesSearchBarWhenScrolling:NO];
          //          self.navigationController.navigationBar.prefersLargeTitles=true;
     } else {
          self.getInvoiceTable.tableHeaderView = self.searchControllerInvoice.searchBar;
     }

     for(UITextField * textField in self.searchControllerInvoice.searchBar.subviews.firstObject.subviews){
          textField.subviews.firstObject.backgroundColor = UIColor.whiteColor;
          textField.subviews.firstObject.layer.cornerRadius = 10.5;
          textField.subviews.firstObject.layer.masksToBounds=YES;
     }
     self.edgesForExtendedLayout = UIRectEdgeNone;
     [[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],UITextAttributeTextColor,[UIColor whiteColor],UITextAttributeTextShadowColor,[NSValue valueWithUIOffset:UIOffsetMake(0, -1)],UITextAttributeTextShadowOffset, nil] forState:UIControlStateNormal];
}

Прежде чем я нажму панель навигации NavigationBar: - он вызвал делегата панели поиска и показывает кнопку отмены enter image description here

После NavigationBar я нажимаю на панели поиска: - он не вызывает делегат панели поиска и не показывает кнопку отмены

enter image description here

Метод делегата SearchBarДля кнопки отмены Код: -

-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
     [searchBar setShowsCancelButton:YES animated:YES];
}
-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar{
     [searchBar setShowsCancelButton:NO animated:YES];
}
...