при попытке создать tableview с помощью searchBar я столкнулся с проблемой, что мой tableView автоматически настраивает contentInset, но не раньше 1-й прокрутки. В другом tableView, где нет searchBar, проблема не существует. Настройка searchController в значительной степени взята из образца Apple TableSearchWithUISearchController. Итак, мои коды вызываются TableViewController в viewDidLoad:
resultsController = [[ResultConstantTVController alloc] init];
searchController = [[BaseSearchController alloc] initWithSearchResultsController:resultsController];
searchController.searchResultsUpdater = self;
searchController.delegate = self;
self.navigationItem.searchController = searchController;
self.navigationItem.hidesSearchBarWhenScrolling = NO;
[self.searchBar setBarStyle:UIBarStyleBlackTranslucent];
[self.searchBar setKeyboardAppearance:UIKeyboardAppearanceDark];
[self.searchBar setAutocapitalizationType:UITextAutocapitalizationTypeNone];
self.definesPresentationContext = YES;
self.dimsBackgroundDuringPresentation = NO;
Я уже пытался вручную установить для tableViews contentInsetAdjustmentBehavior автоматический режим, но он все равно не вступит в силу до 1-й прокрутки.
P.S. Я использую бета-версию Xcode, macOS и iOS.
ОБНОВИТЬ:
Мне удалось обойти проблему, позвонив
[self.navigationController.view layoutSubviews];
в viewDidAppear в TableViewController.





I tried already to set the tableViews contentInsetAdjustmentBehavior to automatic
Это было правильно, но недостаточно. Проблемы такого рода обычно решаются также установкой alwaysBounceVertical табличного представления на YES. Вам нужно сделать это в самом начале существования контроллера представления.
Мне нужно было бы увидеть, что это такое. Возможно, вы не сделали это достаточно рано в жизни контроллера представления. - Но это не критика, и я не говорю, что это решение однозначно; проблема, которую вы описываете, определенно является проблемой, начиная с iOS 11. Обходной путь, который я предлагаю, был предоставлен мне сотрудником Apple.