viewWithTag返回nil,在随后调用cellForRowAtIndexPath
我有一个UITableView与原型表格单元格,我有一个UIImageView UILabel和2个按钮从UIButton继承不同标签的单元格(即100,200,300),我创建了这个使用IB。我使用dequeueReusableCellWithIdentifier获取cellForRowAtIndexPath中的单元格,并且它始终返回一个单元格。viewWithTag返回nil,在随后调用cellForRowAtIndexPath
第一次cellForRowAtIndex路径运行[cell viewWithTag:TAG]为每个UI元素返回正确的对象,但是在第二次运行时(当我滚动一点时)所有对象都被正确返回,除了两个UIButton对象零。 (在调试器中,他们的地址全部为零)。
我不知道什么会导致这种情况,因为我所有的其他表视图与类似的代码工作。
更新:如果我在cellForRow中为按钮设置类型ID,它们不是零,但当我将鼠标悬停在对象上时显示为(UIButton *)。但是,如果我在[cell ViewWithTag:Button1Tag]之后有任何代码将消息发送到id对象,它将变为零。很奇怪。
好吧,我最终在XCode中使用GDB(这是很棒的),使用recursiveDescription来查看单元格内部。这是显示我的标签已经消失,然后我意识到我正在设置cellForRow上的标签来保存该行,覆盖原始IB集标签。
那么你究竟是如何修复它的?我有同样的问题... – Cbas
SDK和目标设备? –
iOS 5 iPhone 4S – Mark