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

时间:2015-05-23 14:27:25

标签: ios swift cocoa-touch containers segue

我是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

1 个答案:

答案 0 :(得分:0)

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

@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)
}