<分区>
我有一个类似于 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
将其传递到我的下一个 View ;
但这似乎不起作用。
如何为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]; }
二.h
@property(nonatomic, copy) NSString *searchText;
最佳答案
你根本不应该使用谓词,在问题中提到它会让每个人都感到困惑。看起来您已经有一个属性来存储您要使用的搜索词,您只是没有更新它。您应该有:
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
self.searchText = searchText;
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];
searchResults = [recipes filteredArrayUsingPredicate:resultPredicate];
}
而且看起来您可以删除 viewDidLoad
中的行(看起来您再次感到困惑,因为您直接访问实例变量的内存并将其设置为返回的值通过同一实例变量的 getter...)
关于ios - 如何为 segue 引用 NSPredicate 的 "%@"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38169118/
相关文章:
MacOS:NSPredicate 查找 "one to one"关系不为零的地方
ios - 在 viewDidLoad() 之前调用 UITableViewController 委托(delegate)方法
ios - UITableView 和 UITextField borderColor 问题
ios - 使用 NSOperation 在 NSOperationQueue 中运行并行代码
objective-c - 如何防止 xcode 将 <# #> 视为代码片段占位符
objective-c - iOS 中的 CVSurf (OpenCV) 功能
ios - 使用 NSPredicate 过滤 NSArray 始终为 null