0

UITableViewCell のラベル (単純な文字列) を nextView の UIlabel にコピーしたいだけです。nextView で文字列プロパティを作成し、セルのラベルを渡そうとしましたが、うまくいきません。nextView で nil になっています。なぜですか? rootViewController.m の didSelectRowAtIndexPath メソッドは次のとおりです。

    -(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 を返します

4

3 に答える 3

1

viewDidLoadメソッドから次の行を削除します。

selectedLabel=[[NSString alloc]init];

これは、他のView Controllerから設定した値をクリアしています。

そして、この行:

label1.text=selectedLabel;

本当にあるべきです:

label1.text = self.selectedLabel;

プロパティをセットアップして使用します。

于 2013-02-19T19:39:39.973 に答える
0

以下のように、pushViewControllerステートメントの前にselLabelを設定してみてください。

detailViewCont.selectedLabel=selLabel;
[self.navigationController pushViewController:detailViewCont animated:YES];
于 2013-02-19T19:09:11.573 に答える
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
于 2013-02-19T19:09:19.450 に答える