如何为 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 对于同一个实例变量...)
我有一个类似于 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 对于同一个实例变量...)