пытается отредактировать uitableviewcell от делегата не работает - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть этот метод делегата ниже, который устанавливает несколько полей в моем табличном представлении.Что происходит, когда одна из ячеек табличного представления нажата, она загружает подпредставление с большим количеством ячеек табличного представления, когда выбирается одна, извлекает представление из viewcontrolle и загружает значение, которое было выбрано, в ячейку родительских представлений, которая была первоначально выбрана.

Эта основная ячейка влияет на то, что я могу установить во второй ячейке.поэтому при щелчке на нем отображаются данные, относящиеся к первому выбору.

Я даю возможность моему пользователю вернуться в любую из ячеек, чтобы изменить свой выбор ... или, возможно, он вернется, думая, что хочет изменитьно не надо.

В этом случае для второй ячейки таблицы моего родительского вида необходимо будет либо измениться, если первая ячейка изменится, либо остаться прежней, если значение первой ячейки не изменится.

У меня есть этот делегат, который используется с первой ячейкой, и именно здесь я пытаюсь контролировать значение второй ячейки, как показано ниже.

- (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 if! = then goи установите вторую ячейку, а затем передайте man в oldMan, чтобы в следующий раз, когда вы используете первую ячейку, она имела значение для сопоставления, но, очевидно, этого не видном, чтобы работать.Моя логика плохая или это что-то в моем коде.

вот как я устанавливаю эти значения в .h они все @ synthesized

//...
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 Ответ

3 голосов
/ 20 марта 2012

Вы должны сравнить значение NSStrings, как показано ниже:

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

Что вы сделали, это сравнили указатели, которые могут различаться для строк с одинаковым значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...