【问题标题】:I want to access an array specified by a tableview in another class我想访问另一个类中的 tableview 指定的数组
【发布时间】:2016-01-18 19:02:46
【问题描述】:

如图所示,我试图在 tableview 函数之外重新声明数组。我还尝试从我希望数组所在的类中调用ViewController.tableView()。我想我需要知道的是如何将数组从 tableview 中取出到其他任何东西中。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier ("BasicCell")

    let keyTitle = keys[indexPath.row].keyTitle
    let keyItself = keys[indexPath.row].keyItself

    var keyArray = []
    keyArray = keyItself

    cell.textLabel?.text = keyTitle

    return cell
}

var theKey: Array = keyItself

【问题讨论】:

  • 我不明白函数是如何工作的。我终于知道我的愚蠢了。你可以让函数拉入可以解决我的问题的数据。我不明白我没有视图控制器类,而是一个单独的类。感谢大家的帮助。

标签: arrays swift uitableview


【解决方案1】:

ViewController 确实引用了类,而 theKey 属性确实属于类 ViewController 的实例。

因此,要访问您的数组,您需要对 ViewController 类的引用。

类似的东西

let viewController: ViewController = ... // get your instance somehow
viewController.tableView()

【讨论】:

    【解决方案2】:

    我恳求你,不要走那条路!我以前见过很多次,它几乎总是以灾难告终。

    视图控制器用于管理视图并通过通知数据模型对用户输入的交互做出反应,并管理数据模型的更改并将其显示给用户。 在那里存储一个数组。

    如果您需要由多个视图控制器共享的数据,有多种选择。最丑陋的,也许是最简单的方法是给你的AppDelegate 一个可以保存这些数据的数组属性。

    即使只是列举其他选项也超出了这个问题的范围。

    【讨论】:

    • mundi 我明白你的意思,但我只是一个初学者,所以你能否详细说明如何为应用委托提供属性?
    • 只需在 AppDelegate 类中声明一个 var
    • 好的,但是表格视图会根据单击的行来确定我使用的数组。如何获取由表视图确定的数据并将其提供给单独的类?感谢您的所有帮助!
    • 您通常在prepareForSegue 中执行此操作。在那里,您可以将对象传递给 segue 的目标控制器进行过滤。
    • 好的,我看了一些视频,基本上理解了我想出的这个 segue 代码,但是我将在下面列出一些问题
    猜你喜欢
    • 2014-11-18
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2015-02-05
    • 2012-12-20
    • 1970-01-01
    相关资源
    最近更新 更多