UINavigationBar の上に UISearchBar を追加し、UIsearchbar showsCancelButton YES を設定します。iOS6 では正常に動作しますが、iOS7 ではキャンセル ボタンが表示されません。以下のコードスニペットを使用しました
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 600, 44)];
searchBar.showsCancelButton = YES;
searchBar.translucent = NO;
[searchBar setTintColor:[UIColor redColor]];
searchBar.backgroundColor = [UIColor yellowColor];
[self.navigationController.navigationBar addSubview:searchBar];