2014-12-07 38 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) 
} 

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

相关问题