如何为 segue 引用 NSPredicate 的“%@”?

How to reference NSPredicate's "%@" for segue?

我有一个类似于 How To Implement Search Bar in iOS 7 Using Storyboard:

的 NSPredicate
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText]; 
    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate]; 
}

我正在尝试使用 self.searchText;

获取 %@ 并将其传递到我的下一个视图

但这似乎不起作用。

如何为 segue 引用 NSPredicate 的 %@

继续:

if ([segue.identifier isEqualToString:@"Twotwo"]) {

    Two *two2 = [segue destinationViewController];
    two2.searchText = self.searchText;`

并且在 viewDidLoad

    _searchText=self.searchText;

编辑:

基本上,我的目标是从 TestViewController 中获取 searchText 字符串,以便在 segue 上传递给 Two。

TestViewController.h

@property(nonatomic, copy) NSString *searchText;

TestViewController.m

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"(one beginswith[c] %@) OR (two beginswith[c] %@) OR (three beginswith[c] %@)", searchText, searchText, searchText];
    searchResults = [cdh filteredArrayUsingPredicate:resultPredicate]; }

Two.h

@property(nonatomic, copy) NSString *searchText;

你根本不应该使用谓词,在问题中提到它让每个人都感到困惑。您似乎已经有一个 属性 来存储您要使用的搜索词,您只是没有更新 it.nyou 应该有:

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
    self.searchText = searchText;
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText]; 
    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate]; 
}

而且您似乎可以删除 viewDidLoad 中的行(看起来您再次感到困惑,因为您直接访问实例变量的内存并将其设置为返回的值getter 对于同一个实例变量...)