通过单击主视图中的按钮更改容器视图中的按钮标签

Changing button label in the container view by clicking button in the main view

我是 IOS 编程新手。在我的应用程序中,我有一个容器视图,它连接到具有三个页面的页面视图控制器。它运作良好。当我在主视图控制器中按下按钮时,我想更改容器视图中的按钮标签。因此,我必须将主视图中的变量连接到页面视图控制器中的变量。我像下面这样写,但是当我点击按钮(SIGABRT信号)时它崩溃了..

@IBAction func pressShift(sender: AnyObject) {
    if (self.shift != 3) {
        self.shift++
    }
    else {
        self.shift = 1
    }
    performSegueWithIdentifier("container", sender: sender)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    var scene = segue.destinationViewController as! FeaturesViewController
    scene.shiftNumber = self.shift
}

我做了一个简单的示例项目。主视图中的容器视图。容器视图(不是页面视图控制器)中有一个标签,主视图中有一个按钮。我写了同样的代码,但同样的错误又发生了。 这是我的故事板图片...

Storyboard Image

示例项目:http://www.filedropper.com/exampletosegue

我通过删除第一次启动时已经创建的子视图解决了这个问题..

@IBAction func insertButton(sender: AnyObject) {

    if (shiftNo != 3) {
        shiftNo++
    }
    else {
        shiftNo = 1
    }

    var childView = self.childViewControllers[0] as! UIViewController
    childView.willMoveToParentViewController(nil)
    childView.view.removeFromSuperview()
    childView.removeFromParentViewController()

    performSegueWithIdentifier("container", sender: self)
}