从以前的ViewControllers swift加载信息

时间:2015-10-09 09:45:21

标签: ios swift

Picture

我认为我们都遇到过问题Swift。我无法找到问题的正确答案。我一遍又一遍地试过。

我代表了一个图片,它解释了我们的应用程序应该如何运作。

用户可以为每个视图选择一个选项。因此,在最后一个中,Labels将根据每个选择而改变。

我希望你能帮助我。感谢

类ViewController1:UIViewController {

@IBOutlet weak var colorLabelSelected: UILabel!

@IBOutlet weak var nextOutlet: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    nextOutlet.hidden = true



}


@IBAction func greenButton(sender: AnyObject) {

    colorLabelSelected.text = "You have selected a green BG color"
    nextOutlet.hidden = false


}


@IBAction func blueButton(sender: AnyObject) {

    colorLabelSelected.text = "You have selected a blue BG color"
    nextOutlet.hidden = false

}


@IBAction func pinkButton(sender: AnyObject) {

    colorLabelSelected.text = "You have selected a pink BG color"
    nextOutlet.hidden = false

}

}

ViewController 2和ViewController 3与ViewController 1

类似

我已经创建了一个名为Attributes的。swift类,但它现在是空的。

我不知道如何做这项工作。

4 个答案:

答案 0 :(得分:1)

当您按下下一个viewController,覆盖prepareForSegue方法时,请引用您的destinationViewController并向其传递所需信息。这有助于传递这些数据 或者创建一个单例对象,某种模型,在其中编写用户在第一个屏幕上选择的值,然后在第二个屏幕上 - 从该单个对象中读取数据。

答案 1 :(得分:1)

定义您的模型,例如:

    class MyData {

        var background = UIColor()
        var title = ""
        var level = ""
    }

使用appDelegate。在AppDelegate.swift中,

    var myData = MyData()

在其他屏幕中,例如第一个屏幕,请使用

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    appDelegate.myData.background = yourColor

与他人相同

答案 2 :(得分:0)

使用@IBAction func pinkButton(sender: AnyObject) { colorLabelSelected.text = "You have selected a pink BG color" nextOutlet.hidden = false self.performSegueWithIdentifier("thirdController", sender: self) } override func prepareForSegue(segue:(UIStoryboardSegue!), sender:AnyObject!) { if (segue.identifier == "thirdController") { var svc = segue!.destinationViewController as! thirdController print("i set the loading thingy") svc.toPass = colorLabelSelected.text } } 作为您的概念

例如

  var toPass:String!

<强> ThirdViewController

创建像

这样的全局变量
addMouseWheelListener(new MouseWheelListener() {

    @Override
    public void mouseScrolled(MouseEvent g) {
        if((g.stateMask & SWT.CONTROL) == SWT.CONTROL) {
            performZoom(g.count);
        }
    }
});

有关教程参考,请参阅此link

答案 3 :(得分:0)

你必须创建数组并在第二和第三类中创建一个数组属性并在secondviewcontroller中传递颜色,在secondviewcontroller中添加属性数组中的标题并将其传递给thirdviewcontroller 您可以使用create property轻松管理。