2013-09-17 1 views
0

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

изначально задает значение метки является

(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(indexPath.row==0) 
     { 
      [email protected]"Switch to Photo View"; 
     } 
} 

тогда, когда клетка пресса произошла я изменил значение метки, как этого

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell=[[ViewProfileRightPanelCell alloc]init]; 
    static NSString *[email protected]"ViewProfileRightPanelCell"; 
    cell=(ViewProfileRightPanelCell*)[tableView dequeueReusableCellWithIdentifier:cellidentifier]; 
    for (cell in [ViewProfileRightPanelTableView subviews]) 
    { 
     if ([cell isKindOfClass:[ViewProfileRightPanelCell class]]) 
     { 
      if (cell.tag == indexPath.row) 
      { 

       if ([cell.rightpanelLabel1.text isEqualToString:@"Switch to Photo View"]) 
       { 
        [email protected]"Switch to List View"; 
       } 

      } 
     } 
    } 
} 

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

ответ

0

Вы находитесь на хорошем треке - у вас есть пользовательская ячейка, ps много.

сделать еще свойства пользовательской ячейке:

@property (nonatomic, retain) NSString* selectedText; 
@property (nonatomic, retain) NSString* deselectedText; 
@property (nonatomic, assign) BOOL selected; 

при создании клеток в cellForRowAtIndexPath: инициализировать оба текста:

if(indexPath.row==0) 
{ 
    cell.selectedText= @"Switch to Photo View"; 
    cell.deselectedText = @"Switch to List View"; 
    cell.selected = NO; 
} 

И:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell=[[ViewProfileRightPanelCell alloc]init]; 
    static NSString *[email protected]"ViewProfileRightPanelCell"; 
    cell=(ViewProfileRightPanelCell*)[tableView dequeueReusableCellWithIdentifier:cellidentifier]; 
    for (cell in [ViewProfileRightPanelTableView subviews]) 
    { 
     if ([cell isKindOfClass:[ViewProfileRightPanelCell class]]) 
     { 
      if (cell.tag == indexPath.row) 
      { 
       cell.selected = !cell.selected; 
      } 
      else 
      { 
       cell.selected = NO; 
      } 
     } 
    } 
} 

И на пользовательских ячейка изготовит пользовательский сеттер для «выбранного» свойства

- (void) setSelected:(BOOL) selected 
{ 
    _selected = selected; 
    if(selected) 
    { 
     self.rightpanelLabel1.text = self.selectedText; 
    } 
    else 
    { 
     self.rightpanelLabel1.text = self.deselectedText; 
    } 
} 
+0

k я попробую это раз, я сообщу вам, но сомневаюсь, что при загрузке начального значения метки следует переключиться на просмотр фотографий – Yohan

+0

не работает – Yohan

+0

Что вы имеете в виду? В чем проблема. –