在我的viewWillAppear方法中,我试图删除单元格附件,在调试中我点击了这一行,但仍然没有从屏幕中删除,任何想法我应该在哪里做错了? Cell是自定义单元格,我在cellForRowAtIndexPath方法中第一次设置此附件,稍后当它从另一个页面导航时尝试在viewWillAppear中更改。
CustomCell *cell =(CustomCell*)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
cell.accessoryType = UITableViewCellAccessoryNone;
答案 0 :(得分:0)
请试试这个......
UITableViewCell *x;
x=[tblProfileView cellForRowAtIndexPath:];
[x setAccessoryType:UITableViewCellAccessoryNone];
答案 1 :(得分:0)
您应该避免直接操作UITableViewDelegate和UITableViewDatasource方法之外的UITableView元素的显示。这样做会撤消这些方法提供的封装。相反,我建议在ViewController中创建一个实例变量,您可以在委托和数据源方法中进行轮询。例如,使用名为showCellAccessory的BOOL:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// the usual cell dequeueing stuff here
if(showCellAccessory) {
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
} else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
// more cell configuration stuff here
}
您可以使用委派从您正在导航的ViewController向此ViewController发送消息:
- (void)dismissOtherViewController:(UIViewController)viewController {
showCellAccessory = NO;
[self.navigationController popViewControllerAnimated:YES];
}