-1

マップ機能を備えた単純なナビゲーション コントローラーを構築しようとしています。ルート ビューから詳細ビューに 2 つの変数を取り込もうとしています。1 つはラベルを持ち、経度を持っています。

ルートから詳細ビューまでの値を取得しますが、ログには次のように表示されます。

  • 2012-04-12 14:38:41.331 マップ[80073:11603] ロング: 0.000000
  • 2012-04-1214:38:41.331 マップ [80073:11603] ラベル
  • 2012-04-12 14:38:41.331 マップ[80073:11603] ロング: 62.375702

long は経度で、ラベルとなる変数にラベルを付けます。「長い」変数を 1 つだけ渡していますが、常に最初に 0.00000 を取得するため、マップに間違った場所が表示され、ラベルには何も表示されません..

私は何時間もの間、何が問題なのかを理解しようとしてきましたが、コードや Web 上で何も見つからないようです。

RootViewController.m:

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


            NSString *term = @"Label";
            float longi1 = 100.102321;


 DetailViewController *svc = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]]; 

            //send properties to your view controller

             svc.term = term;
            svc.longi = longi1;

            //push it to the navigationController
           [self.navigationController pushViewController:svc animated:YES];
            [svc release];
            svc = nil;

        }

DetailViewController.m:

        - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view.

 NSLog(term);
        NSLog(@"long: %f", longi);
        coor.text = term; 
    float lati = 65.12414;

    CLLocationCoordinate2D coord = {.latitude = lati, .longitude = longi};
        MKCoordinateSpan span = {.latitudeDelta =  0.5, .longitudeDelta= 0.5};
        MKCoordinateRegion region = {coord, span};
        [mapView setRegion:region];
        [self.view addSubview:mapView];  
    }
4

1 に答える 1

2

これ-initWithNibName:bundle:は、ビューがメモリに読み込まれ-viewDidLoad、経度を割り当てる前に呼び出されるために発生します。

コードをに移動してみて-viewDidLoadください-viewWillAppear

于 2012-04-12T15:26:18.507 に答える