如何在nextView中将UITableViewCell标签复制到UILabel?

时间:2013-02-19 18:49:09

标签: ios objective-c uitableview uilabel nslog

我只想将UITableViewCell的标签(这是一个简单的字符串)复制到nextView的UIlabel中。 我尝试在nextView中创建一个字符串属性并将其传递给单元格标签, 但它不起作用。 我在nextView中得到零, 这是为什么?这是我的didSelectRowAtIndexPath方法 在rootViewController.m中

    -(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语句返回null

3 个答案:

答案 0 :(得分:1)

viewDidLoad方法中删除以下行:

selectedLabel=[[NSString alloc]init];

这是清除您从其他视图控制器设置的值。

这一行:

label1.text=selectedLabel;

应该是:

label1.text = self.selectedLabel;

您设置了一个属性,使用它。

答案 1 :(得分:0)

尝试在pushViewController语句之前设置selLabel,如下所示

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

答案 2 :(得分:0)

detailViewCont.selectedLabel=selLabel;来电前移动您的专线pushViewController。在分配值之前展示viewcontroller。

@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