Вам нужно получить ссылку на контроллер вида в виде контейнера, а затем у вас должен быть доступ ко всем его выходам. Назначьте идентификатор segue для segue контроллеру представления контейнера и получите ссылку при вызове segue.
Например, чтобы обновить метку в контроллере просмотра контейнера с кнопки в родительском контроллере представления.
Родитель-контроллер:
import UIKit
class ViewController: UIViewController {
var containerVC : ContainerVC!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
if (segue.identifier == "segueContainer")
{
containerVC = segue.destinationViewController as! ContainerVC
}
}
@IBAction func butUpdateContainerLabelAction(sender: AnyObject) {
if containerVC != nil{
containerVC.lblDemo.text = "some new text"
}
}
}
Контейнер View Controller
class ContainerVC: UIViewController {
@IBOutlet weak var lblDemo: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
, что вы имеете в виду обновление? Сбой приложения с какой ошибкой? Outlets ноль или ничто (вы можете распечатать что-то в viewDidLoad перед сбоем, если да, дайте нам то, что внутри вас - viewDidLoad)? Что у вас есть в представлении «Контейнер»? – kholl
У меня прекрасный рабочий Parse Query. Он работает, когда у меня есть один View Controller без представлений контейнера. С точки зрения UI лучше иметь контейнер. Каждый раз, когда я прокручиваю контроллер Container View, вызывается функция Update, которая обновляет ярлыки и изображения. – JVS