Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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单视图应用程序中将一个2d值数组传递给第二个视图_Ios_Arrays_Swift_Uitextfield_Uilabel - Fatal编程技术网

Ios 我想在Swift单视图应用程序中将一个2d值数组传递给第二个视图

Ios 我想在Swift单视图应用程序中将一个2d值数组传递给第二个视图,ios,arrays,swift,uitextfield,uilabel,Ios,Arrays,Swift,Uitextfield,Uilabel,我正在尝试使用Xcode创建一个基本的数独解算器。目前,我有一个9x9的文本字段显示,它被转换成二维数组,并通过我已经制作的解算器。我目前的困境是,我想将已解决的数组传递到第二个视图,并将其打印成一个数独板,但我不确定如何1.)正确转换到第二个视图,以及2.)如何将数组与一起打印 我还不能添加图像,但我的故事板只包含两个视图。它们当前未连接。第一个是文本字段的9x9显示,下面有一个按钮,没有相关的操作。第二个是9x9的标签显示,其他什么都没有 以下是第一个视图的全部代码: import UIKi

我正在尝试使用Xcode创建一个基本的数独解算器。目前,我有一个9x9的文本字段显示,它被转换成二维数组,并通过我已经制作的解算器。我目前的困境是,我想将已解决的数组传递到第二个视图,并将其打印成一个数独板,但我不确定如何1.)正确转换到第二个视图,以及2.)如何将数组与一起打印

我还不能添加图像,但我的故事板只包含两个视图。它们当前未连接。第一个是文本字段的9x9显示,下面有一个按钮,没有相关的操作。第二个是9x9的标签显示,其他什么都没有

以下是第一个视图的全部代码:

import UIKit

class ViewController: UIViewController {

@IBOutlet var row1: [UITextField]!
@IBOutlet var row2: [UITextField]!
@IBOutlet var row3: [UITextField]!

@IBOutlet var row4: [UITextField]!
@IBOutlet var row5: [UITextField]!
@IBOutlet var row6: [UITextField]!

@IBOutlet var row7: [UITextField]!
@IBOutlet var row8: [UITextField]!
@IBOutlet var row9: [UITextField]!


@IBAction func executeSolver() {
    var board = [[Int]](count: 9, repeatedValue: [Int](count: 9, repeatedValue: 0))
    var board2 = [row1, row2, row3, row4, row5, row6, row7, row8, row9]

    for var row = 0; row < 9; ++row{
        var rowE = board2[row];
        for var col = 0; col < 9; ++col{
            var val = rowE[col].text;

            if var intVal = val.toInt() {
                if intVal > 0 && intVal < 10 {
                    board[row][col] = intVal;
                }
            }

        }
    }

    var ss = Solver(givenBoard: board)
    board = ss.getBoard()

}


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.
}


}
导入UIKit
类ViewController:UIViewController{
@IBOutlet变量行1:[UITextField]!
@IBOutlet变量行2:[UITextField]!
@IBOutlet变量行3:[UITextField]!
@IBOutlet变量行4:[UITextField]!
@IBOutlet变量行5:[UITextField]!
@IBOutlet变量行6:[UITextField]!
@IBOutlet变量行7:[UITextField]!
@IBOutlet变量行8:[UITextField]!
@IBOutlet变量行9:[UITextField]!
@iAction func executeSolver(){
var board=[[Int]](计数:9,repeatedValue:[Int](计数:9,repeatedValue:0))
var board2=[第1行、第2行、第3行、第4行、第5行、第6行、第7行、第8行、第9行]
对于var行=0;行<9;++行{
var rowE=board2[行];
对于变量col=0;col<9;++col{
var val=rowE[col]。文本;
如果var intVal=val.toInt(){
如果intVal>0&&intVal<10{
板[行][col]=intVal;
}
}
}
}
var ss=求解器(给定板:板)
board=ss.getBoard()
}
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
}

< /代码> 您可以考虑使用自定义2D结构。 你为什么要用这个?它为您提供订阅。
此外,如果您的标签具有相同的特征,则最好使用插座阵列并使用标签来标识每个插座,而不是逐个创建插座

struct Array2D<T> {
      let columns: Int
      let rows: Int
      private var array: Array<T?>

    init(columns: Int, rows: Int) {
        self.columns = columns
        self.rows = rows
        array = Array<T?>(count: rows*columns, repeatedValue: nil)
    }

    subscript(column: Int, row: Int) -> T? {
        get {
            return array[row*columns + column]
        }
        set {
            array[row*columns + column] = newValue
        }
    }
 }
struct Array2D{
let列:Int
让行:Int
私有变量数组:数组
init(列:Int,行:Int){
self.columns=列
self.rows=行
数组=数组(计数:行*列,重复值:零)
}
下标(列:Int,行:Int)->T{
得到{
返回数组[行*列+列]
}
设置{
数组[行*列+列]=newValue
}
}
}

本质上,我相信您是在问:如何在情节提要视图控制器之间传递数据。您能用segue连接两个视图控制器吗?