从数组中显示 TableViewController 中的列表,数组中只有 1 个项目

Posted

技术标签:

【中文标题】从数组中显示 TableViewController 中的列表,数组中只有 1 个项目【英文标题】:Displaying List in TableViewController from array with only 1 item in array 【发布时间】:2015-02-14 14:29:53 【问题描述】:

学习编写 Swift 代码,我尝试向 TableView 控制器添加一个数组,因此数组中的每个项目都是表格中自己的一行,一切顺利,但是如果我在数组中只有一个项目,它不会不显示。

var myArray = [[""]]
var count = myArray.count
var myArray2 = [""]

for index in 0...count-1 
    myArray2.append(myArray[index][0])

在稍后的 func 中,我将 myArray2 添加到列表中,但正如我所说,如果列表中只有 1 个项目,则它不起作用。认为这是因为我正在做 0...count-1,所以 0...0,但无法找到另一种方法。

谢谢

完整代码:

import UIKit

struct MyVariables 
static var myArray = [[""]]


class HistoryViewController: UIViewController, UITableViewDelegate 
var myArray2 = [""]

@IBOutlet var tableView: UITableView!

override func viewDidLoad() 
println(MyVariables.myArray)
super.viewDidLoad()

var firstItem = MyVariables.myArray[0][0]
if firstItem == "" 
    MyVariables.myArray.removeAtIndex(0)


println(MyVariables.myArray.count)

var count = MyVariables.myArray.count
println(count)
var countIsNotZero = false
println(countIsNotZero)

myArray2.removeAll(keepCapacity: false)

if count != 0 
    countIsNotZero = true

println(countIsNotZero)

if count != 0 
    for index in 0...count-1 
        myArray2.append(MyVariables.myArray[index][0])
        println(index)
    

self.tableView.reloadData()
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")



func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
println(myArray2.count)
return myArray2.count;


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell

println(myArray2.count)
if myArray2.count > 1
    cell.textLabel?.text = myArray2[indexPath.row]
    println(myArray2.count)
 else 
    cell.textLabel?.text = ""

return cell
 

【问题讨论】:

您的代码在操场上为我工作。 myArray 有一个元素。 myArray2 有两个元素。范围0...0 中有一个值,for 循环将执行一次。请出示您的 tableView 代码。 添加代码见下文 cellForRowAtIndexPath 中,此代码if myArray2.count > 1 使您的单个元素无法显示。你想用那句话来完成什么? 不太确定说真话!生病删除它,然后再试一次 【参考方案1】:

您的表格没有显示单个值,因为当数组没有至少两个项目时,您正在用空字符串填充标签的文本。如果您删除该检查,您的表格将使用一项:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell

    println(myArray2.count)
    cell.textLabel?.text = myArray2[indexPath.row]
    return cell
 

【讨论】:

以上是关于从数组中显示 TableViewController 中的列表,数组中只有 1 个项目的主要内容,如果未能解决你的问题,请参考以下文章

从数组数组中选择一个数组以在uitableview(iphone)中显示

从数组中显示 TableViewController 中的列表,数组中只有 1 个项目

从数组中显示带有名称的随机图像。 (SwiftUI)

当单击不同数组中的另一个单独项目同时从第一个数组中删除该项目时,从一个数组中随机显示项目?

如何在从 servlet 检索的 JSP 数据中显示数组数组。尝试从 JSP 访问时,记录不显示任何内容

从数据库中读取数据并存储在数组列表中,但数组列表显示为空