Я представляю всплывающее окно (myCustomViewController.m), когда загружается мой viewcontroller.Всплывающее окно представляет собой viewcontroller, который имеет табличное представление.Ниже приведен мой код, показывающий, как я показываю всплывающее окно.
- (void)showTableviewpopup{
myCustomViewController *myVC = [myCustomViewController controller];
myVC.delegate = self;
UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController: myVC];
navCtrl.modalPresentationStyle = UIModalPresentationFormSheet;
dispatch_async(dispatch_get_main_queue(), ^{
[self presentViewController:navCtrl animated:YES completion:NULL];
});
}
//This is how myCustomViewController interface looks like
@interface myCustomViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
Теперь, когда это всплывающее окно загружается, первая ячейка таблицы просматривается за панелью навигации, и нет способа ее опустить.Это хорошо работает на iOS 11, но имеет проблемы на iOS 10. Если я добавлю приведенный ниже код, это исправит проблему в iOS 10, но добавит дополнительное пространство в iOS 11.
- (void)viewDidLayoutSubviews {
UIEdgeInsets insets = UIEdgeInsetsMake(self.topLayoutGuide.length, 0, 0, 0);
self.tableView.contentInset = insets;
self.tableView.scrollIndicatorInsets = insets;
}
Другое решение - поставить галочкудля iOS 11, прежде чем применять этот код, но есть ли лучший способ решить эту проблему?