【问题标题】:Having trouble transferring interface from UIViewController to Table View (Outlet cannot be connected to repeating content)将界面从 UIViewController 传输到 Table View 时遇到问题(Outlet 无法连接到重复内容)
【发布时间】:2017-01-04 08:01:13
【问题描述】:

我有一段代码在它的视图控制器中运行良好。我想清理它,所以我添加了一个表格视图,这样它会更干净。我刚刚在表格视图中创建了单元格并拖放了我的标签和按钮。但是现在我有

的错误
Outlets cannot be connected to repeating content 

我知道以前有人问过这个问题,但是我无法得到关于为什么会发生这种情况的具体答案。这是连接标签的视图控制器代码。我知道有创建一个子类的解决方案,但是一切都已经在视图控制器中工作了,所以我想知道是否有更简单的解决方法。

class CharViewController: UIViewController, BLEDelegate, MFMailComposeViewControllerDelegate, UIPickerViewDelegate, UIPickerViewDataSource, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var label: UILabel!
etc etc etc

我唯一做的就是从我的视图拖放到表格视图单元格上。

【问题讨论】:

标签: ios swift interface storyboard


【解决方案1】:

原型单元格重复,因此无法正常工作。你有两个选择:

1) 使用静态单元格。这些需要 UITableViewController 但它们不被视为重复内容(静态)。

2) 创建一个自定义 UITableViewCell 并在那里连接插座。然后,您必须在自定义 tableView 单元格时出列到单元格并通过该单元格调整标签。

【讨论】:

  • 如果我使用静态,如果值可以随时更改,它会起作用吗?例如,值为 1 的按钮可以更改值,并且无论何时更改值,它都会将数据发送到外部设备。那还能用吗?
  • 静态单元格应该像 ViewController 选项一样工作。它只是该标签和/或按钮的单个实例。如果您将 tableView 严格用于格式化目的,它应该可以按您的意愿工作。
【解决方案2】:

那是因为您可能试图将您放置在情节提要的单元格原型中的对象导出。 要在以后摆脱此错误,请执行以下步骤

  • 第 1 步 创建另一个类,它是UITableViewCell 的子类,从视图层次结构中选择您的单元格,然后通过此选项将此类分配给单元格,就像您将 New ViewController 类分配给 Storyboard 中的 ViewController 一样。

  • 第 2 步 在您的自定义单元类中创建您的 IBOutlets,就像您尝试在 UIViewController 和/或任何其他类中创建该出口一样。

  • 第 3 步 例如,您创建了两个名为 cellLabelcellImageViewIBOutlets 现在您可以通过简单地在 dequeReusableCellWithIdentifier 方法中键入转换单元对象来访问这些属性。

    let cell=tableView.dequeueReusableCell(withIdentifier:"YourCellIdentifier", for:indexPath) as! YourCustomCellClassName;
    cell.cellLabel.text = "Any Thing";
    cell.cellImageView.image = UIImage(named: "MyImage.jpg");
    

这是一个图片链接,它将向您展示如何将您的类分配给您的自定义单元原型。

【讨论】:

  • 我看到我有一个子类。但是,我有代码可以在视图中完成所有传输。如何转移到子类?
  • 我在答案末尾添加了一张图片,它将演示如何将您的单元原型连接到您的自定义类。
  • 太棒了,我可以在我的视图控制器类中使用第 3 步吗?
  • 是的,第三步可以在你的 ViewController 类中使用
  • 我有两个问题,一个是使用未解析的标识符 indexpath 会出错。另外,在我的子类中,我只在类体内有 iboutlets 就可以了吗?
猜你喜欢
  • 2020-10-17
  • 2016-02-26
  • 2014-05-10
  • 2020-10-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
相关资源
最近更新 更多