0

NSString を別のビューに渡そうとしています。

私の最初のビュー(マップビューです)では、私のコードは次のとおりです。

FirstView.m ファイル:

import "FlipsideViewController.h"

-(IBAction) displayDetails:(id) 送信者{

MyLocation *ann = [_mapView.selectedAnnotations objectAtIndex:([_mapView.selectedAnnotations count]-1)];

FlipsideViewController *flipsideViewController;
flipsideViewController=  [[FlipsideViewController alloc]init];
flipsideViewController.details =ann.name;
NSLog(@"ann.name:%@", ann.name);
NSLog(@"details:%@", flipsideViewController.details);

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"details" bundle:nil];
    controller.delegate = self;     
  controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:controller animated:YES];
    [controller release]; 

}

NSlog は正しい文字列を出力します。しかし、その文字列を詳細と呼ばれる SecondViewController 文字列に渡そうとすると、次のようになります。

私の FlipsideViewController.h では、次のように定義されています。

NSString *詳細;

@property (nonatomic, strong) NSString *details;

FlipsideViewController.m にいる間

@synthesize 詳細; //そして、ログを置くたびに、null 値が出力されます

値: NSLog(@" * ** * ** * ** * *** *detalli %@",detalli);

私のせいはどこですか?

4

3 に答える 3

1

この手順を試してください:1)まず、anotherViewController.hでプロパティを作成します

@property (nonatomic, strong ) NSString *fetchStr;

2)anotherViewController.mでNSStringを合成します

@synthesize fetchStr;

3)firstViewControllerで使用する

anotherViewController *avc =  [[anotherViewController alloc]init];
avc.fetchStr = ann.name;

そして、anotherViewControllerのfetchStrをprint(NSLog)します

于 2012-06-02T11:19:13.153 に答える
1

secondViewController で、NSString 型の保持プロパティであるプロパティを追加します プロパティを追加するには、以下をお読みください

http://cocoacast.com/?q=node/103

このセクションを編集してください

FlipsideViewController *flipsideViewController;
flipsideViewController=  [[FlipsideViewController alloc]init];
flipsideViewController.details =ann.name;
NSLog(@"ann.name:%@", ann.name);
NSLog(@"details:%@", flipsideViewController.details);

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"details" bundle:nil];
    controller.delegate = self;     
  controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:controller animated:YES];
    [controller release]; 

FlipsideViewController *flipsideViewController;
flipsideViewController=  [[FlipsideViewController alloc]init];
flipsideViewController.details =ann.name;
NSLog(@"ann.name:%@", ann.name);
NSLog(@"details:%@", flipsideViewController.details);

flipsideViewController.delegate = self;     
flipsideViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:flipsideViewController animated:YES];
[flipsideViewController release];
于 2012-06-02T11:07:13.887 に答える
0

注釈を付けた

@property(nonatomic,retain) MyLocation *annotation;

それを別のView Controllerに渡します。

それが動作します。

于 2012-06-02T12:37:42.740 に答える