2012-04-12 119 views
-1

我試圖用map函數來構建一個簡單的導航控制器。我試圖從根視圖中取兩個變量到Detail視圖。一個有標籤,有經度。傳遞變量,pushViewControll

我從根值於Detail'd看法,但在其記錄本說:

  • 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是經度和標籤應該是標籤的變量。我只通過一個'長'變量,但總是得到0.00000,這使得地圖顯示錯誤的位置,並且標籤不會顯示任何東西。

我一直在試圖弄清楚什麼是幾個小時都不對,但似乎無法在代碼或網頁中找到任何內容,因此非常感謝所有幫助。

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]; 
    } 
+0

您展示「長」被打印兩次,但對「長」只有一個的NSLog()語句。另一個從哪裏來? – 2012-04-12 13:09:24

+0

我認爲這個(第一個打印輸出)是問題的根源,請檢查你的''''''''''''''''''''''檢查你的''viewdidload''方法(像'init','viewWillLoad'等),並確認你沒有改變/這種情況下的問題當然是爲什麼你的地圖顯示錯誤的東西,因爲你上次打印的值看起來不錯...... – Alladinian 2012-04-12 13:14:54

+0

你可以將標題改爲更準確地描述問題的東西嗎? – JeremyP 2012-04-12 15:19:28

回答

2

這是因爲-initWithNibName:bundle:負載到內存中的觀點,並導致-viewDidLoad您指定的經度之前被調用。

嘗試在-viewDidLoad代碼移動到-viewWillAppear

+0

非常感謝你!現在它只顯示經度的一個日誌條目,但現在它在運行時不會影響標籤或mapView – 278204 2012-04-12 15:57:39