Ошибка подтверждения в -[UITableView _addScrollViewScrollObserver:] при использовании навигации с большим заголовком ios 11

У меня есть контроллер панели вкладок с контроллером представления, который имеет только табличное представление в нем.

Я настраиваю навигационную панель большим заголовком, используя код:

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

Любая идея, чтобы исправить проблему. Благодарю.

1 ответ

Решение

Сбой вызван этим методом [[UINavigationBar появление] 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
    }
Другие вопросы по тегам