【问题标题】:Assertion failure in -[UITableView _addScrollViewScrollObserver:] while using large title navigation ios 11使用大标题导航 ios 11 时 -[UITableView _addScrollViewScrollObserver:] 中的断言失败
【发布时间】:2018-04-28 08:49:43
【问题描述】:

我有标签栏控制器和视图控制器,其中只有一个表格视图。

我正在使用代码设置导航栏大标题:

if (@available(iOS 11.0, *)) {
        [[UINavigationBar appearance] setPrefersLargeTitles:YES];
    } else {
        // Fallback on earlier versions
    }

当我第二次打开标签时,它的应用程序崩溃了。或使用以下消息随机移动标签。

错误信息如下所示:

Assertion failure in -[UITableView _addScrollViewScrollObserver:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3694.4.18/UIScrollView.m:7693

解决问题的任何想法。谢谢。

【问题讨论】:

  • 当我的视图位于 tabBarController 内时,即使在 iOS 12 上我也会遇到此异常

标签: uitableview uitabbarcontroller ios11 uiappearance large-title


【解决方案1】:

崩溃是由这个方法引起的 [[UINavigationBar appearance] setPrefersLargeTitles:YES];请勿使用上述方法。

在你的 UIViewControllers 中使用以下代码

if (@available(iOS 11.0, *))
    {
        self.navigationController.navigationBar.prefersLargeTitles = true;
        self.navigationController.navigationBar.topItem.title = @"Your Title here";
        self.navigationController.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAutomatic;

        NSDictionary *attributes = @{NSForegroundColorAttributeName: [UIColor redColor]};
        self.navigationController.navigationBar.largeTitleTextAttributes = attributes;
    }
    else
    {
        // Fallback on earlier versions
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2014-05-26
    相关资源
    最近更新 更多