试图从委托编辑uitableviewcell不工作

时间:2011-11-02 22:05:01

标签: iphone ios uitableview

下面我有这个委托方法,即在我的tableview中设置几个字段。当按下其中一个tableview单元格时,它会加载一个带有更多tableview单元格的子视图,当选择一个时,会从viewcontrolle弹出视图,并将选定的值加载到最初选择的parentviews单元格中。

这个主单元影响我能够在第二个单元格中设置的内容。因此,当单击它时,它会显示与第一个选择相关的数据。

我正在让我的用户回到任何一个单元格来改变他们的选择..或者他们可能会回想他们想要改变但是没有。

在我的父视图的第二个tableviewcell中,如果第一个单元格更改,则需要更改,如果第一个单元格dosnt的值发生更改,则需要保持不变。

我有一个与第一个单元格一起使用的委托,它是我试图控制第二个单元格的值的地方,如下所示。

- (void) setManufactureSearchFields:(NSArray *)arrayValues withIndexPath:(NSIndexPath *)myIndexPath
{
    manufactureSearchObjectString = [[arrayValues valueForKey:@"MANUFACTURER"] objectAtIndex:0];
    manufactureIdString = [[arrayValues valueForKey:@"MANUFACTURERID"] objectAtIndex:0]; //Restricts Models dataset
    manufactureResultIndexPath = myIndexPath;
    [self.tableView reloadData]; //reloads the tabels so you can see the value in the tableViewCell.
    //need some sort of if statment here so that if the back button is pressed modelSearchObjectString is not changed..

    if (oldManufactureSearchObjectString != manufactureSearchObjectString) {
        modelResultIndexPath = NULL;
        modelSearchObjectString = @"empty";
        oldManufactureSearchObjectString = manufactureSearchObjectString;
    }
}

事实上,即使为第一个单元格选择了相同的单元格,它每次都会输入if语句。(在这种情况下,不应该输入if语句。

我想我可以通过检查oldMan vrs man来做到这一点!=然后通过并设置第二个单元格的东西,然后将man传递给oldMan,这样下次使用第一个单元格时它就有一个值来对抗comapre。但显然这似乎不起作用。我的逻辑是坏的还是我的代码中的东西。

这就是我在.h中设置这些值的方法,它们都是@synthesised

//...
NSString *manufactureSearchObjectString;
    NSString *oldManufactureSearchObjectString;
    NSString *manufactureIdString;
    NSIndexPath *manufactureResultIndexPath;
//...

@property (copy) NSString *manufactureSearchObjectString;
@property (copy) NSString *oldManufactureSearchObjectString;
@property (copy) NSString *manufactureIdString;
@property (copy) NSIndexPath *manufactureResultIndexPath;
//...

1 个答案:

答案 0 :(得分:3)

您必须比较NSStrings的值如下:

BOOL isEqual = [aString isEqualToString:bString]; // provide aString and bString
if (!isEqual)
{
    // code
}

你所做的就是比较指针,对于相同值的字符串可能会有所不同。