Мы предполагаем, что вы есть метод UISearchBarDelegate
в UIViewController
называется SearchViewController. Для того, чтобы подтолкнуть (DetailViewController*) dvc
, реализовать эти методы в SearchViewController:
#pragma mark - Search bar delegate
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if (searchTextMatchedSomeTarget) {
textForDetailView = searchText;
[self performSegueWithIdentifier:seguePushDetailView sender:self];
}
}
#pragma mark - View lifecycle
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:seguePushDetailView]) {
dvc = (DetailViewController *)[segue destinationViewController];
dvc.delegate = (id)self;
dvc.searchText = textForDetailView;
}
}
#pragma mark - Detail view controller protocol delegate
- (void)DetailViewControllerDidFinish:(DetailViewController *)controller
{
NSString *somethingBackFromDetailView = controller.backToSearchView;
}
UIDetailViewController
объявляет протокола с методом «сделали отделку» и свойством любого типа вы хотите, как получить данные из SearchViewController и отправлять любые данные после обработки любой детали. Сегмент добавляется в Xcode IB путем перетаскивания элемента управления от UISearchViewController
до UIDetailViewController
. NB: источник и назначение segue - это сами контроллеры представлений. Таким образом, они могут быть вызваны программным способом, а не автоматическим вызовом в событии крана.
Pls, предоставить код. – Cyprian