Ну, как это сделал бы закон Мерфи, чтение, которое я прочитал после публикации этого вопроса, привело к нескольким результатам - не полностью разрешилось, но несколько полезно тем не менее.
Я играл с минимальной высотой немного до публикации, но не знал о внутренних ограничениях на размер, которые являются довольно новыми для спецификации.
http://caniuse.com/#feat=intrinsic-width
Добавление min-height: min-content
в область flexbox устраняет проблему в Chrome, а с префиксами поставщиков также исправляются Opera и Safari, хотя Firefox остается неразрешенным.
min-height: -moz-min-content; // not implemented
min-height: -webkit-min-content // works for opera and safari
min-height: min-content // works for chrome
для идей по Firefox и других потенциальных решений.
В результате наших комментариев давайте вместе с делегированием посмотрим, сможем ли мы решить вашу проблему:
Объявив протокол, вы можете сделать это в другом файле или в своем ViewController
:
Этот протокол имеет метод для извлечения данных снова после добавления данных в FormulaViewController
protocol DataFetcherDelegate {
func fetchData()
}
class ViewController: UIViewController {
. Затем выполните этот протокол из ваших ViewController
:
class ViewController: UIViewController, DataFetcherDelegate {
После вы соответствуете протоколу, вам нужно будет реализовать метод fetchData
внутри ViewController
, именно здесь вы будете помещать запрос на выборку основных данных для получения обновленных данных:
func fetchData() {
print("fetchingData")
// write your data fetching code here, then make your arrays equal respectively again.
// once fetching and assigning data to arrays are complete do:
tableView.reloadData()
}
Теперь перейдите к FormulaViewController
и добавьте переменную delegate
следующим образом:
class FormulaViewController: UIViewController {
var delegate: DataFetcherDelegate?
Затем вернитесь к ViewController
, где бы вы ни создавали свой экземпляр FormulaViewController
(я получил код ниже из вашего комментария, вам также нужно отлить VC как FormulaViewController
, он немного обновлен, не используйте ваш старый код) и назначить ViewController
как delegate
из FormulaViewController
:
let vc = storyboard!.instantiateViewController(withIdentifier: "formulaView") as! FormulaViewController
vc.delegate = self // assigning self as delegate of FormulaVC
self.present(vc, animated: true, completion: nil)
Теперь мы закончили с частью ViewController
, теперь мы перейдем к FormulaViewController
и сделаем следующее:
Перед тем, как вы отклоните свой поп upView после успешного сохранения новых данных, теперь мы скажем нашему delegate
(ViewController
) снова извлечь данные ядра, затем мы отклоним FormulaViewController
:
//save your respective item to your core data, formula, time or step
// then for the sake of example, lets add a Formula:
let newFormula = Formula(/*with your core data context*/)
//save to your core data with context. like persistentContainer.viewContext.save(), I dont know how you implemented that.
delegate?.fetchData()
dismiss(animated: true, completion: nil)
Теперь, надеюсь, однажды FormulaViewController
удаляется, данные ViewController
также будут обновлены.