通过单击主视图中的按钮更改容器视图中的按钮标签
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
}
我做了一个简单的示例项目。主视图中的容器视图。容器视图(不是页面视图控制器)中有一个标签,主视图中有一个按钮。我写了同样的代码,但同样的错误又发生了。
这是我的故事板图片...
我通过删除第一次启动时已经创建的子视图解决了这个问题..
@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)
}
我是 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
}
我做了一个简单的示例项目。主视图中的容器视图。容器视图(不是页面视图控制器)中有一个标签,主视图中有一个按钮。我写了同样的代码,但同样的错误又发生了。 这是我的故事板图片...
我通过删除第一次启动时已经创建的子视图解决了这个问题..
@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)
}