将一个视图的UISearchBar searchString发送到另一个视图的UISearchBar并执行搜索

时间:2012-01-18 07:41:45

标签: iphone objective-c xcode uitableview uisearchbar

我是编码的新手,我一直在取得很大的进步......直到现在!我一直在为iPhone设置一个应用程序,但我遇到了一堵墙。

我正在尝试将HomeViewController的{​​{1}}中的searchString发送到UISearchBar的{​​{1}},然后我想要tableViewController UISearchBar根据初始searchString自动执行搜索,从而用过滤后的数组填充TableViewController表。

当我使用主视图的UISearchBar时,它会将应用程序推送到表视图,但是,数据库的数组不会被过滤。表格视图确实有一个功能TableViewController,可以根据我提供的各种searchBar来过滤我的数组。

我根据谷歌发现的例子做了很多尝试,但似乎没什么用。

这是我的相关代码。 (我遗漏了一些我认为与手头问题无关的代码。)

家庭视图控制器

UISearchBar

...

...

...

我的searchStrings看起来很相似,尽管变量略有不同。我试过在@interface HomeViewController : UIViewController <UISearchBarDelegate> { NSString *pushedSearchString; UISearchBar *homeSearchBar; } @property (strong) NSString *pushedSearchString; @property (nonatomic,strong) IBOutlet UISearchBar *homeSearchBar; ... ... ... @implementation HomeViewController @synthesize pushedSearchString, homeSearchBar; - (void)updateSearchString:(NSString*)aSearchString { pushedSearchString = [[NSString alloc] initWithString:aSearchString]; } - (void)searchBarButtonClicked:(UISearchBar *)searchBar { [self updateSearchString:searchBar.text]; [searchBar resignFirstResponder]; TableViewController *tableViewController = [self.storyboard insantiateViewControllerWithIdentifier:@"table"]; table.title = @"Results"; [self.navigationController pushViewController:table animated:YES]; } 方法中操作代码,正如我在其他帖子中看到的那样,但没有任何效果。

我非常感谢能得到的任何帮助 - 感谢您阅读本文并感谢您的时间!

1 个答案:

答案 0 :(得分:0)

在Tableviewcontroller中声明NSString的属性。并在.m文件中合成它。并在homeviewcontroller方法中进行以下更改。

- (void)searchBarButtonClicked:(UISearchBar *)searchBar    
{    
[self updateSearchString:searchBar.text];    
[searchBar resignFirstResponder];    
TableViewController *tableViewController = [self.storyboard insantiateViewControllerWithIdentifier:@"table"];
table.someString = searchBar.text;
table.title = @"Results";    
[self.navigationController pushViewController:table animated:YES];    
}