5 способов сделать это здесь:
1) Пусть контроллер представления поиска будет делегатом действия в контроллере представления типа поиска, поэтому, когда пользователь выбирает тип поиска, он будет проинформирован. Используйте протокол для правильной проверки во время компиляции, если хотите, и не забывайте использовать для делегата назначение вместо сохранения, чтобы избежать циклической ссылки.
2) Установите для делегата UINavigationController значение Search View Controller (или любой другой класс, которым вы хотите его управлять) и прослушивайте событие, когда выскочит контроллер вида поиска.
3) Реализовать функцию «обновить» в viewWillAppear: как предложено выше, но это не рекомендуется, потому что реализация viewWillAppear: отстой и вообще не надежна. Может быть, хорошо для простого приложения, но когда структура вашего приложения усложняется, забудьте об этом.
4) Используйте NSNotificationCenter. Ваш контроллер представления поиска будет наблюдать за всеми изменениями критериев поиска, и в каждом контроллере дочернего представления, когда пользователь изменяет его, публикует уведомление. Это сложнее, но гораздо мощнее и гибче, чем все методы, описанные выше.
5) Точно так же вы можете использовать Базовые данные для хранения всех критериев поиска в объекте и прослушивания изменений в этом объекте с помощью KVO. Это немного сложнее и может быть излишним, но если вы знаете KVO, это значительно облегчает жизнь в Objective C, поэтому, возможно, стоит взглянуть в любом случае.
Кстати: хорошо, чтобы весь пользовательский интерфейс выполнялся вручную для понимания концепций, но попробуйте перейти к Interface Builder, когда сможете. Это очень рекомендуемый способ работы (в Stackoverflow или в Интернете существует бесчисленное множество тем с более подробными обсуждениями того, почему IB лучше).