是否有任何if语句在objC中显示/隐藏方法?

时间:2011-05-05 21:42:46

标签: iphone objective-c if-statement

我在不同的标签中使用相同的uiviewcontroller实例。 在viewcontroller中有一个uitableview。 在firstviewController实例中,我不想编辑uitableview。 在第二个我使用编辑模式的tableview。 这就是为什么我想显示或隐藏这种方法:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

是否可以像这样制作一个if语句:

#if (editingOK)
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
....some codes
}
#endif

编辑OK是BOOL属性。

如果你问为什么我想要它,因为如果用户在单元格上滑动,它会显示删除按钮。 如果我的编辑OK = YES,我只想要它。

2 个答案:

答案 0 :(得分:1)

是否通过调用UITableViewController的setEditing方法来控制可编辑性?所以你可以根据你是否想要启用编辑来设置它,没有#ifdef ugliness。

答案 1 :(得分:1)

#if/#endif语法用于条件编译:它允许您根据构建配置在编译时修改程序。阅读“C预处理器”以了解更多信息。

如果您使用相同的对象 instance 作为不同UITableViews的委托,您必须有一些方法来确定您正在处理哪个表。

您需要做的是实施其他方法:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

当用户滑动单元格时会调用该方法,您可以决定是否应该显示删除按钮,然后返回相应的UITableViewCellEditingStyle常量。