2014-12-07 40 views
0

我需要在表視圖中查找特定內容視圖。 這個表格視圖是由一個UITableViewController驅動的,它用於向我的用戶顯示他可以在我的應用程序中更改的一些參數。 對於其中一個單元格,我需要以編程方式添加一個UITextView,它具有子類(NSTextStorage)以更改文本屬性,具有豐富的文本編輯等等。 所以我需要通過能夠調用我的.addSubview來找到特定的單元格(內容視圖)。我認爲這很簡單,只需在該視圖中添加一個特定的標籤,然後在我的viewDidLoad中調用.viewWithTag。問題是一個零!!!使用viewWithTag函數在UITableViewController中查找特定內容視圖

這裏的小代碼段,我的表層次

override func viewDidLoad() { 
    super.viewDidLoad() 

    let specific = self.view.viewWithTag(99) //--> Return nil 
    let specific2 = self.tableView.viewWithTag(99) //--> Also nil 

enter image description here

我做錯了還是我錯過的東西的捕獲?這是我第一次使用這種方法(viewWithTag),也許還有其他事情需要我去做?

Thx!

回答

0

你不能,請撥打本上viewDidLoad因爲你使用的是UITableView,所有這些細胞將只加載viewDidLoad的方法tableView:cellForRowAtIndexPath:

所以如果你想插入單元格上的任何東西,你必須使用tableView:cellForRowAtIndexPath:來做到這一點。

我不確定viewWithTag是否適用於TableView,但不應該這樣做。要獲得一個特定小區的景觀,你可以調用下面的方法(它正在對我上面說的方法加載後):

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[[NSIndexPath indexPathForRow:0 inSection:0]];

+0

你忘記了這是一個UITableViewController誰是表視圖是相當「靜態」,不使用cellForRowAtIndexPath方法。沒有委託或數據源需要處理。 – 2014-12-08 17:42:40

0

很多搜​​索後,我決定去同一個容器視圖。 所以我把UIContainerView控件放在我的單元格內。這將創建一個嵌入到自定義視圖的segue。

enter image description here

在該視圖中可以覆蓋viewDidLoad中並加載我自定義的UITextView控制...

class CustomView: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // ... code of my super class UITextView with my custom NSTextStorage 

    self.view.addSubview(specialTextBox) 
} 

所以現在它的作品! :-)

相關問題