ios - 试图在我的 UITableView 中返回数组的每个索引

标签 ios swift

我正在尝试在我的应用程序中使用 MVC 模型。这是我第一次使用它,因为我刚刚学习 iOS 编程。有几件事你需要知道来帮助我。第一:我在这个模型中有一个名为 Home.swift 的模型,我有一个数组和一个函数。 “家.swift”:

class Home: NSObject {
  var content: [String] = [
    "Apple",
    "Door",
    "Evil",
    "Error",
]
func homeDisplayContent() -> String  {
    for var i = 0; i < 12; i++ {
        return content[i]
    }
}
}

我在这里需要一个 init 吗?如果需要,我将如何实现它?其次,我的 tableView 有一个 View 。我认为我的观点没有任何问题。但为了以防万一在这里我有我的“HomeCell.swift”:

    var homes: Home! {
    didSet{
        contentLabel.text = homes.homeContent()
    }
}

最后我有了我的 View Controller ,“HomePageViewController.swift”:

var homes: [Home]!



@IBOutlet weak var homeTableView: UITableView!


override func viewDidLoad() {
    super.viewDidLoad()

    self.homeTableView.delegate = self
    self.homeTableView.dataSource = self
    homes = [Home()]
    self.homeTableView.reloadData()
    // Do any additional setup after loading the view.
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("homeCell", forIndexPath: indexPath) as? HomeCell
    cell!.homes = homes[indexPath.row]

    return cell!
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.homes.count
}

我想要做的是能够在 Home.swift(我的模型)中获取数组中的每个索引,并将它们呈现在各自的单元格中。我相信我需要创建一个 Home 对象数组,但我不确定如何去做。很抱歉文本 block 和格式不佳(我无法终生修复第一段代码)但我真的迷路了并且在 google 和 stackoverflow 上环顾了一段时间试图找出我的问题但没有运气。提前致谢!

最佳答案

您正在对 contents 数组中的值进行硬编码。因此,您需要使用该数组中的值。在这种情况下无需创建多个 Home 对象。你想要这样的东西:

Home.swift

class Home : NSObject
{
   var content: [String] = [
     "Apple",
     "Door",
     "Evil",
     "Error",
   ]

   func homeDisplayContent(atIndex : Int) -> String
   {
       return content[atIndex]
   }
}

HomePageViewController.swift

var home = Home()
@IBOutlet weak var homeTableView: UITableView!

override func viewDidLoad()
{
    super.viewDidLoad()

    self.homeTableView.delegate   = self
    self.homeTableView.dataSource = self
    self.homeTableView.reloadData()
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCellWithIdentifier("homeCell", forIndexPath: indexPath) as! HomeCell
    cell.contentLabel.text = home.homeDisplayContent(indexPath.row)
    return cell
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    return self.home.contents.count
}

关于ios - 试图在我的 UITableView 中返回数组的每个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35621394/

相关文章:

iOS XYPieChart 数据源方法未被触发

ios - 检查数字的 UITextfield 间隔

ios - Afnetworking multipart/formdata 返回请求在 ios 11 中失败,但在 ios 10 中工作正常

ios - 类型 'CMSampleBuffer' 的值没有成员 'imageBuffer'

ios - 在 Swift 的函数中将 NSString 转换为 UInt8?

ios - 如何在 iOS Xcode UI 测试用例中启动系统应用程序

ios - APNS 通知 TTL

ios - 在 UIWebView 中从 AVPlayer 获取视频 URL

ios - 我的 subview 没有从 SuperView Xcode7 Swift 中删除

ios - 从 UIImageView 获取主色的坐标