Поместите представление таблицы внутри представления контейнера в Swift 3

У меня 2-х сегментная кнопка управления. Сегментная кнопка «Яблоко» и «Апельсин». Я поместил в него представление таблицы, и когда пользователь нажмет на «Apple», появится представление таблицы Apple.

Я поместил в него еще одно представление «Контейнер» (названное: «Представление оранжевого контейнера»), и когда пользователь нажмет на вкладку «Оранжевый», он появится.
Представление контейнера имеет дочерний контроллер представления. Итак, я поместил «Табличное представление» с именем Orange TableView в дочерний контроллер представления.

Проблема в том, что когда я нажимаю на вкладку "Apple", строки Apple Table View появляются сразу, но Orange Table View не отображается сразу, когда я нажимаю на вкладку Orange.

Как я могу перезагрузить таблицу из дочернего контроллера представления, чтобы она отображалась сразу, когда я нажимаю на вкладку «Оранжевая».

Я попробовал метод «Отправить». Я не знаю, как написать код перезагрузки таблицы для контроллера дочернего представления.

[ОБНОВЛЕНИЕ: проблема решена]

Я добавляю следующие коды в контроллер родительского представления.

NotificationCenter.default.addObserver(self, selector: #selector(loadList), name: NSNotification.Name(rawValue: "load"), object: nil)


func loadList(){
    //load data here
    self.OrangeContainerView.reloadInputViews()
}

Я помещаю следующие коды в контроллер дочернего представления.

 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)

person May Phyu    schedule 08.05.2017    source источник


Ответы (1)


Добавить Действие по управлению сегментом из раскадровки в этот метод

@IBAction func segmentChanged(_ sender: UISegmentedControl) {

    let orageViewController = self.childViewControllers[sender.selectedSegmentIndex] as! OrageViewController
        orageViewController.updateTable()

}

Теперь updateTable() - это метод в вашем дочернем контроллере представления (OrageViewController) в OrageViewController.

func updateTable(){

 yourTableView.reloadData()

}
person hament miglani    schedule 08.05.2017