0

我试图在我的 UITableview 的 tableHeaderView 中使用 UISearch 栏。此搜索功能在 iOS 6 上没有问题,但由于针对 7.0 SDK 构建,我在从另一个视图返回后点击搜索栏时出现崩溃。第一次查看搜索tableView,搜索栏按预期工作。但是,一旦我深入到详细视图,当我点击它时,搜索栏就会抛出一个 exc-bad-access 异常。在我的方案中使用 NSZombies 不会记录这种不良访问。这是设置标题视图的代码:

    self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
    self.searchController = [[UISearchDisplayController alloc]
                             initWithSearchBar:self.searchBar contentsController:self];
    self.searchController.delegate = self;
    self.searchController.searchResultsDataSource = self;
    self.searchController.searchResultsDelegate = self;

    self.tableView.tableHeaderView = self.searchBar;

属性self.searchBarself.searchController都被声明为强引用。任何地方都收到无内存警告。iOS 7 中的 UISearchBar 或 tableHeaderView 有什么变化吗?值得注意的是,我正在向 UISearchBar 应用外观代理,但它在第一次加载时看起来和工作正常。

4

2 回答 2

0

我在 iOS7 中遇到了 UISearchBar 崩溃的问题,直到我在 UITableViewController 被解除之前开始将我的 UISearchDisplayController 设置为非活动状态。添加以下内容对我有用,但我不知道我们的问题是否相关:

[_mySearchDisplayController setActive:NO];
于 2013-09-25T00:08:11.200 回答
0

原来崩溃是由于sectionIndexTitlesForTableView与 a 一起使用UISearchDisplayController(见这个问题)。这似乎是 iOS 7 SDK 中的一个错误。相反,我现在使用CMIndexBar作为第三方替代品。就像本机部分索引一样工作,永不崩溃,易于定制。

于 2013-09-25T16:31:14.827 回答