【问题标题】:Bad Access With UISearchBar in tableHeaderView iOS 7在 tableHeaderView iOS 7 中使用 UISearchBar 访问错误
【发布时间】:2013-09-19 19:26:57
【问题描述】:

我正在尝试在我的 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 应用外观代理,但它在第一次加载时看起来和工作正常。

【问题讨论】:

    标签: iphone uitableview uisearchbar exc-bad-access ios7


    【解决方案1】:

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

    [_mySearchDisplayController setActive:NO];
    

    【讨论】:

      【解决方案2】:

      原来崩溃是由于使用了sectionIndexTitlesForTableViewUISearchDisplayController(参见this question)。这似乎是 iOS 7 SDK 中的一个错误。相反,我现在使用CMIndexBar 作为第三方替代品。就像原生部分索引一样工作,永不崩溃,易于定制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-01
        • 1970-01-01
        • 2013-10-01
        • 1970-01-01
        • 2015-09-10
        相关资源
        最近更新 更多