swift - 如何根据 didSelectRowatIndexPath 位置显示数组中的项目?

标签 swift xcode

我正在编写一个具有 UITableView 的应用程序。我目前为表中的单元格设置了一个 segue 设置:

var selectedRow = Int() //global variable so it can be used in both VCs
import UIKit
class TableViewController: UITableViewController {
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        performSegue(withIdentifier: "rowSelected", sender: Any?.self)
        selectedRow = indexPath.row
    }
}

转场工作正常。但是,在控制 viewController 的 swift 文件中(仅用于更改标签的文本)无法正常工作。这是来自该 VC 的代码:

override func viewDidLoad() {
        super.viewDidLoad()  
        firstLabel.text = infoArray[selectedRow]
        print(selectedRow)
    }

infoArray 设置正确,但标签并不总是更改为正确的文本...打印 selectedRow 返回不一致的数字...如果我点击第一个单元格,它有时会返回 0,但它也会返回 1, 3、2 等...它似乎是随机的,并且没有正确返回当前的 int(因此标签文本设置不正确)。这是为什么?

最佳答案

您正在做的不是将信息从一个 View Controller 传递到另一个 View Controller 的方法。要传递信息,传递信息。不要在全局中删除信息,而是执行 prepare(for:sender:) ,您可以在准备时获取 segue 的目标 View Controller ,并设置目标 View Controller 的属性。

关于swift - 如何根据 didSelectRowatIndexPath 位置显示数组中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40566428/

相关文章:

javascript - Strongloop 在 Apple swift 中的环回 iOS 客户端 SDK

ios - 在 Xcode 上找不到带有 iOS 8.1.2 模拟器的 iPad Air 2

Swift NSTextField 文本消失

swift - 返回 Vapor 3 中的部分对象

ios - 我如何编写一个 UI 测试来启动带有推送通知有效负载的应用程序并验证您是否被路由到正确的 View ?

ios - NSOutputStream outputStreamToFileAtPath :path append:NO has no space available

iphone - 从 .txt 文件中读取 - Objective C

swift - 快速崩溃日志

ios - PGO:为什么 XCode 会生成空的 .profdata 文件?

ios - ImageView 自动布局从水平边缘固定 60pt,但自动缩放高度?