2013-02-19 10 views
0

Я просто хочу скопировать ярлык UITableViewCell (который является простой строкой) в UIlabel nextView. Я попытался создать свойство string в nextView и передать ему метку ячейки, , но это не сработает. Я получаю нуль в следующем представлении, Почему это? Вот мой didSelectRowAtIndexPath Метод в rootViewController.mКак скопировать метку UITableViewCell в UILabel в следующем представлении?

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     NSString *selLabel =[tempArray objectAtIndex:indexPath.row]; 
     DetailViewController *detailViewCont=[[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil]; 
detailViewCont.selectedLabel=selLabel;   
[self.navigationController pushViewController:detailViewCont animated:YES]; 

     NSLog(@"selected Label %@",detailViewCont.selectedLabel); 
    } 

заявление Последняя NSLog возвращает правильную строку здесь.

В nextViewController.m

-(void)viewDidLoad 
{ 
[super viewDidLoad]; 
selectedLabel=[[NSString alloc]init]; 

UILabel *label1=[[UILabel alloc]init]; 
    label1.frame=CGRectMake(5,5,310, 60); 
    label1.font=[UIFont fontWithName:@"Arial Black" size:20]; 
    label1.text=selectedLabel; 
    NSLog(@"sellabel %@",selectedLabel); 
[self.View addSubview:label1]; 
} 

NSLog оператор здесь возвращает нуль

+0

Является ли 'selLabel'' nil'? Является 'tempArray'' nil'? – rmaddy

+0

см. Мой обновленный вопрос –

ответ

1

Удалить следующую строку из вас viewDidLoad метод:

selectedLabel=[[NSString alloc]init]; 

Это очистное значение, которое вы установите с другого контроллера представления.

И эта линия:

label1.text=selectedLabel; 

должны быть действительно:

label1.text = self.selectedLabel; 

Вы настроить свойство, используйте его.

0

Попробуйте установить selLabel перед оператором pushViewController, как показано ниже,

detailViewCont.selectedLabel=selLabel; 
[self.navigationController pushViewController:detailViewCont animated:YES]; 
+0

no does not work! –

+0

ваш код отсутствует, где вы назначаете метку из tableviewcell на метку1. Вы инициализируете строку selectedLabel и устанавливаете ее на ярлык1, прежде чем устанавливать ее со значением. – shyamsundar1988

+0

У меня есть табличный массив tableViewCell под названием tempArray @ shyamsundar1988 –

0

Переместите линию detailViewCont.selectedLabel=selLabel; перед pushViewController вызова , Представление диспетчера представлений перед назначением значения.

@interface DetailViewController 

... 
@property (strong, nonatomic) NSString *selectedLabel; 

@end 

@implementation DetailViewController 
@synthesize selectedLabel = _selectedLabel; // define the instance variable associated with the property 

-(void)viewDidLoad { 
    label1.text = _selectedLabel; 
} 

@end 
+0

В nextViewController.m не выбранLabel свойство? Так вы передаете лейбл из другого VC? Если это так, вы не хотите назначать его новой строке. –

+0

Я не получаю вас, пожалуйста, упростите –

+0

Обновлен ответ, надеюсь, уточните –

Смежные вопросы