2012-08-27 22 views
43

我有一個相當大的項目(~20個場景)。其中之一是具有自定義UITableViewController類的TableViewController。我給單元格提供了重用標識符,併爲其添加了標籤。當我嘗試和Ctrl +標籤拖動到的UITableViewController頭文件創建一個出口,我得到以下錯誤:向Storyboard-IB中的原型單元格添加項目時出現奇怪的錯誤

error: Illegal Configuration: Connection "tableInfoView" cannot have a prototype object as its destination.

這是什麼?我忽略了一些明顯的東西?或者我需要創建一個自定義的單元類並將其拖到那個位置?如果是這樣,那麼我該如何指定從UITableViewController中爲每個單元顯示的唯一數據?

+10

由於控制器不是原型的所有者('UITableViewCell'),所以不能將原型的標籤連接到表視圖控制器的出口。對於動態單元格的原型,您需要做一些操作,比如在單元格上設置一個標籤,並在出列單元格後使用該標籤查看標籤。 –

+0

只是想出來:P感謝您的幫助!把它寫成答案,我會接受它。 –

回答

67

實際上,您不能僅在UITableView委託視圖控制器中使動態單元格原型成爲出口。

您必須繼承UITableViewCell的子類,然後將此類歸入您的原型。

然後您可以將Ctrl從標籤拖動到UITableViewCell子類頭文件。

最終,您可以在導入其中的UITableViewCell頭文件後訪問代理代碼中的此插座。

這是由Apple there在「動態行內容的技術」部分記錄的。

+0

有沒有分組單元的方法?我遇到困難的時候... – user805981

+0

你是什麼意思的「分組細胞」? – dulgan

1

我面臨同樣的問題,但後來證明這只是一個愚蠢的錯誤。 我錯誤地拖着從小區標籤到我的控制器的@interface

這可能是你的問題太多。只是交叉檢查一次。

+0

我不認爲海報是要求IBAction,而是配置控件的出路。 –

+0

@LeviRoberts我不是在談論IBActions。 – thesummersign

2

我自己也有同樣的錯誤。只爲未來的讀者增加一個更重要的根本原因:

在我的情況下,我從一個原型單元複製了一個控件(在這種情況下是一個按鈕),並且該動作仍然指向相鄰單元。我的桌子有幾個不同的原型單元。

事實上,它實際上是UITableViewCell的一個適當的子類,它正確連接到原型單元格使得難以真正看到錯誤。

10

,或者你可以給一個標籤,標籤(例如100),並使用

myLabel = [myTableView viewForTag:100]; 

,以獲取標籤

-1

坐落在.m文件中使用的故事板爲原型細胞權重用標識符。我有同樣的情況,這對我有幫助

+0

mi8很笨,但錯誤我們會忘記! – Wodjefer

-2

在做好每一件事情之後,如果問題依然存在,那麼請刪除所有網點並仔細重新加入它們,它對我來說工作得很好。

1

爲標籤添加標籤,您可以像viewWithTag一樣在視圖控制器中的任意位置訪問標籤。

UILabel *destinationLabel = (UILabel *)[self.tableView viewWithTag:1]; 


    destinationLabel.text = @"Label Destaination"; 
相關問題