Я изо всех сил пытаюсь передать выбранный параметр в представлении выбора в одном контроллере представления в текст метки метки в другом контроллере представления. VC с меткой, которую я хочу обновить, имеет идентификатор раскадровки: «PageContentViewController». VC с моим подборщика (periodPicker) имеет кнопку «Выбрать» в нижней части представления, которая вызывает следующую функцию при нажатии:Обновить текст ярлыка в другом контроллере представления
@IBAction func selectButtonPressed(_ sender: Any) {
let row = periodPicker.selectedRow(inComponent: 0)
let selected = periodType[row]
let pageContentViewController = self.storyboard?.instantiateViewController(withIdentifier: "PageContentViewController") as! PageContentViewController
pageContentViewController.periodLabelTitle = selected
}
код PageContentViewController
класса
import UIKit
class PageContentViewController: UIViewController {
@IBOutlet weak var periodLabel: UILabel!
@IBOutlet weak var dateLabel: UILabel!
var pageIndex: Int = 0
var periodLabelTitle: String!
var dateLabelTitle: String!
override func viewDidLoad() {
super.viewDidLoad()
periodLabel.text = periodLabelTitle
dateLabel.text = dateLabelTitle
}
}
Когда переходя к PageContentViewController
с помощью кнопок вкладок (это приложение на основе табуляции), текст ярлыка не обновляется. Где я иду не так?
Я попытался использовать команду periodLabel.text = periodLabelTitle
в методе viewDidAppear
для pageContentViewController
, но это все еще не сработало (после нажатия кнопки «Выбрать» ранее).
Я считаю также уместным упомянуть, что PageContentViewController
является ребенком VC UIPageViewController
.
Возможный дубликат [Передача данных между контроллерами просмотров] (http://stackoverflow.com/questions/5210535/passing -data-between-view-controller) – KK7
Попробуйте положить точку прерывания в метод 'viewDidLoad()' и проверить, пустой ли текст или нет. – KrishnaCA
@ KK7 Это не применяется. OP ссылается на приложение табуляции, которое не использует segues. – Shades