You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift开发:Eureka表单无法显示,请求问题排查与解决

解决Eureka表单无法显示的问题

嘿,我一眼就看出问题所在啦!你只是创建了Form并添加了表单行,但没有把Form和UITableView关联起来——Eureka的表单是依托UITableView来渲染展示的,没有这个容器,内容自然显示不出来。

下面是修改后的完整代码,我会标注关键改动:

import UIKit
import Eureka

// 建议遵守Swift命名规范,类名用大驼峰
class MyViewController: UIViewController {
    var form = Form()
    // 1. 添加UITableView属性,作为表单的展示容器
    private let tableView = UITableView(frame: .zero, style: .grouped)
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // 拆分方法让代码更清晰
        setupTableViewLayout()
        setupEurekaForm()
    }
    
    private func setupTableViewLayout() {
        // 2. 设置tableView的约束,让它铺满整个视图
        tableView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(tableView)
        NSLayoutConstraint.activate([
            tableView.topAnchor.constraint(equalTo: view.topAnchor),
            tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
        ])
    }
    
    private func setupEurekaForm() {
        // 3. 把Form和tableView绑定,让Eureka负责数据源和代理逻辑
        form.delegate = self
        form.dataSource = self
        tableView.dataSource = form
        tableView.delegate = form
        
        // 4. 原来的表单构建逻辑不变
        form +++ Section("Section1")
            <<< TextRow(){ row in
                row.title = "Text Row"
                row.placeholder = "Enter text here"
            }
    }
}

// 5. 让视图控制器遵守Eureka的必要协议
extension MyViewController: FormDelegate, FormDataSource {}

关键改动说明:

  • 添加了UITableView作为表单的展示容器,设置约束让它铺满整个视图控制器的view
  • 将Form的delegate和dataSource指向当前控制器,同时把tableView的数据源和代理绑定到Form上,这样Eureka就能自动处理表单的渲染和交互
  • 顺便调整了类名,符合Swift的大驼峰命名规范(myViewController → MyViewController)

这样修改后,你再运行模拟器就能看到你创建的表单啦!

内容的提问来源于stack exchange,提问作者user6710871

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:36:19