Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用Swift从一个类到另一个类获取值?_Ios_Swift - Fatal编程技术网

Ios 如何使用Swift从一个类到另一个类获取值?

Ios 如何使用Swift从一个类到另一个类获取值?,ios,swift,Ios,Swift,我对使用swift编程相当陌生,我想知道如何从一个.swift文件到另一个.swift文件获取值。我给大家举个例子: 有两个.swift文件和两个视图控制器。第一个视图控制器名为ViewController,第二个为ReceivedInfo。ViewController包含两个变量:LevelNumber和HardicultyNumber。这两个变量都是Int类型的。然后有三个级别的iAction,标题为:L1、L2和L3。它们使用相应的数字更改LevelNumber的值。接下来,我们有三个同样

我对使用swift编程相当陌生,我想知道如何从一个.swift文件到另一个.swift文件获取值。我给大家举个例子:

有两个.swift文件和两个视图控制器。第一个视图控制器名为ViewController,第二个为ReceivedInfo。ViewController包含两个变量:LevelNumber和HardicultyNumber。这两个变量都是Int类型的。然后有三个级别的iAction,标题为:L1、L2和L3。它们使用相应的数字更改LevelNumber的值。接下来,我们有三个同样是iBaction的困难:简单、中等和困难。它们都包含一个新的值,该值按顺序与标题对应。以下是我们的情况:

import UIKit

class ViewController: UIViewController {

var LevelNumber: Int!
var DifficultyNumber: Int!

@IBAction func Level1(sender: AnyObject) {
    LevelNumber = 1
}

@IBAction func Level2(sender: AnyObject) {
    LevelNumber = 2
}

@IBAction func Level3(sender: AnyObject) {
    LevelNumber = 3
}
/////////////////////////////////////
/////////////////////////////////////
@IBAction func Easy(sender: AnyObject) {
    DifficultyNumber = 1
}

@IBAction func Medium(sender: AnyObject) {
    DifficultyNumber = 2
}

@IBAction func Hard(sender: AnyObject) {
    DifficultyNumber = 3
}


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}
我用斜线把两组分开。 在ReceivedInfo中,我们创建了一个名为InformationLabel的标签,仅此而已:

import UIKit

class RecievedInfo: UIViewController {

@IBOutlet weak var InformationLabel: UILabel!

}
我想有人告诉我如何从ViewController打印信息(LevelNumber和HardicultyNumber)以接收信息


我知道我可以创建多个视图控制器或plist,但请远离它们。欢迎所有推荐!如果需要更多描述,请告诉我。

传递数据有几种方法

1.使用委托设计模式

2.使用NSNotificationCenter

3.使用Segue's

更新:


此链接包含所需的详细信息

您无法从一个文件到另一个文件获取值。您从一个类实例到另一个类实例获取值。您似乎从错误的角度来处理此问题。您需要学习的是如何在视图控制器之间导航“segue”。考虑到您即将开始,我推荐斯坦福iOS系列讲座,它非常清晰地介绍了这一点。你可以在网上或iTunes U上找到这一点。如果你想深入研究,谷歌PrepareForegue。我同意文成皇的回答。最简单的方法可能是通过分段传递数据。虽然。。。我会为此被炒鱿鱼的。。。我喜欢全局变量。你能给我一个使用segue的例子吗?这将非常有帮助。请参阅我更新的链接,它将向您展示如何使用委派和seguesThanks获得建议!我按照教程进行了学习,几乎完成了,但有一些bug我还没弄清楚。