Ios 已激发UISearchControl委托,但Tableview中未显示任何对象

Ios 已激发UISearchControl委托,但Tableview中未显示任何对象,ios,objective-c,uitableview,uisearchcontroller,Ios,Objective C,Uitableview,Uisearchcontroller,我已经实现了UISearchControl iOS8版本,它与以前的版本略有不同。当我根据下面看到的NSLog语句键入内容时,它似乎启动正确,唯一的问题是UITableView实际上从未更新过,我在numberOfRowsInSection的}else{部分添加了一个NSLog,以确认它不是这样调用的: - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if

我已经实现了UISearchControl iOS8版本,它与以前的版本略有不同。当我根据下面看到的NSLog语句键入内容时,它似乎启动正确,唯一的问题是UITableView实际上从未更新过,我在numberOfRowsInSection的}else{部分添加了一个NSLog,以确认它不是这样调用的:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == self.tableView) {

        return self.objects.count;

    } else {
        // NOT BEING FIRED WHEN STUFF IS TYPED IN SEARCH BAR?
        NSLog(@"Search Results  Returned in TableView");
        return self.searchResults.count;

    }
}
尽管这些方法启动良好…并根据updateFilter方法中添加的NSLog正确更新searchResults数组:

#pragma mark - UISearchResultsUpdating
-(void)updateSearchResultsForSearchController:(UISearchController *)searchController {
    NSString *searchString = [self.searchController.searchBar text];
    [self updateFilteredContentForSaleName:searchString];

    // ASSUMING THIS IS WHAT CAUSES TABLEVIEW TO REFRESH, BUT ISNT REFRESHING IT WITH NEW ARRAY?

     [((UITableViewController *)self.searchController.searchResultsController).tableView reloadData];
}
#pragma mark - Content Filtering
- (void)updateFilteredContentForSaleName:(NSString *)saleName {
    [self.searchResults removeAllObjects];

    for (PFObject *sale in self.objects)
    {
        NSString *saleTitle = [sale objectForKey:@"name"];
        if ([[saleTitle lowercaseString] hasPrefix:[saleName lowercaseString]])
        {
            [self.searchResults addObject:sale];
        }
    }
    // THIS LOG SHOWS SEARCH RESULTS CORRECTLY HOW THEY SHOULD BE, JUST NO UPDATE TO UITABLEVIEW

    NSLog(@"%@", self.searchResults);
}
但是没有更新tableview

知道这是为什么吗?我是不是打错电话了

 [((UITableViewController *)self.searchController.searchResultsController).tableView reloadData];
我也尝试过PFQueryTableViewController*,因为这基本上就是我在实际视图控制器中使用的,但运气不好

编辑

以下是用于创建UISearchControl的代码

@interface LocalSalesViewController () <UISearchResultsUpdating>


@property (nonatomic, strong) UISearchController *searchController;
@property (nonatomic, strong) NSMutableArray *searchResults; // Filtered search results

@end

@implementation LocalSalesViewController
- (id)initWithCoder:(NSCoder *)aCoder {
    self = [super initWithCoder:aCoder];
    if (self) {
        self.parseClassName = @"Sales";
        self.pullToRefreshEnabled = YES;
        self.paginationEnabled = YES;
        self.objectsPerPage = 25;
    }
    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    self.searchResults = [NSMutableArray array];
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
    self.searchController.searchResultsUpdater = self;
    self.searchController.searchBar.frame = CGRectMake(self.searchController.searchBar.frame.origin.x, self.searchController.searchBar.frame.origin.y, self.searchController.searchBar.frame.size.width, 44.0);
    self.tableView.tableHeaderView = self.searchController.searchBar;
    self.definesPresentationContext = YES;

}

数据源呢?您是否已将其添加到tableview并实现了其方法?是的,但问题是在调用刷新时没有调用numberOfRowsInSection。数据正常显示良好,并且假设一旦我获得表进行实际刷新,它将显示良好。是否未调用它或tableview==self.tableView?因为如果你使用同一个表来显示搜索结果,看起来你总是会陷入if条件哦,那么你是说if总是按照我设置的方式来调用,因为我在同一个表视图中使用它们?那么我该如何解决这个问题以使用同一个表视图?或者我必须两个独立的搜索控制器,以某种方式隐藏另一个并在上面显示一个?将您的代码张贴在您实际创建和设置搜索控制器的位置。您还应该使用UISearchController示例应用程序查看表格搜索。