2012-03-22 68 views
0

我有Table View控制器,它具有子類DetailViewController,其內容根據所選單元格而變化,但在繼續前進時,從我的DetailViewController轉到MapView,我嘗試使用相同我用來在DetailViewController上獲取文本的方法,但它不起作用,不管我做什麼。即時卡住它更像3周現在:(在mapview中添加註釋引腳取決於所選擇的單元格

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

{ 如果(self.detailViewController!){ self.detailViewController = [[DetailViewController的alloc] initWithNibName:@ 「DetailViewController」 束:無];

[self.navigationController pushViewController:self.detailViewController animated:YES]; 
[self.detailViewController changeProductText:[teksti objectAtIndex:indexPath.row]]; 
[self.detailViewController changeProductText1:[adrese objectAtIndex:indexPath.row]]; 
[self.detailViewController changeProductText2:[laimigastunda objectAtIndex:indexPath.row]]; 
[self.detailViewController changeImage:[imageChange objectAtIndex:indexPath.row]]; 



} 

} 不管我在這裏更改,它不工作。

+0

編寫代碼的方式,只有當它爲零(也許是您第一次選擇一行)時纔會推送詳細視圖。之後,什麼都沒有完成。這是由設計嗎?此外,請詳細解釋「不工作」的含義(例如,不推送,詳細視圖爲空,崩潰,編譯器警告,其他)。詳細視圖的viewDidLoad是否執行?添加斷點和NSLog。逐句通過調試器中的代碼。 – Anna 2012-03-22 20:21:43

+0

DetailViewController工作完美,但問題來了,當我從DetailViewController導航到MapController,並嘗試使用相同的方法,我對DetailViewController,以獲取加載到MapController不同的座標,沒有代碼上面,因爲它不工作。在我嘗試這個方法之前[self.mapController cord:[coordChange objectAtIndex:indexPath.row]] ;,它剛剛添加在[self.detailViewController changeImage:[imageChange objectAtIndex:indexPath.row]]之後; – Edgars 2012-03-22 20:29:17

+0

請將沒有用到代碼中的代碼發佈到問題中。那麼DetailViewController有一個表視圖?然後在DetailViewController的didSelectRowAtIndexPath方法中,你有這個代碼?你爲什麼要推動並在其內部設置detailViewController?也許我不明白這個問題。 – Anna 2012-03-22 20:45:49

回答

0

看起來從你表明你沒有給一個數據對象的detailViewController的代碼,但而是直接設置值。

這不是做這件事的方法,也可能是你有問題的原因。你需要掌握MVC的概念並回到它。

至少你應該 1.建立與鍵第一種觀點的字典@「teksti」,@「​​adrese」,@「經度」,@latitude」。 2.創建DetailViewController一個屬性來保存字典。 3.更新的值顯示所述DetailViewController

當這樣當按下地圖鍵,可以再按下一個視圖包含MapView類和設置地圖的緯度和經度,你必須顯示。

所以它會這樣做:

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:[teksti objectAtIndex:indexPath.row], @"teksti", [adrese objectAtIndex:indexPath.row], @"adrese", [latitude objectAtIndex:indexPath.row], @"latitude", [longitudes objectAtIndex:indexPath.row], @"longitude", nil]; 
    [detailViewController setDict:dict]; 

,並在DetailViewController.m:

- (void)viewWillAppear:(BOOL)animated{ 
    [self changeProductText:[dict objectForKey:@"teksti"]]; 
    .... And so on 
    } 

您的代碼會爲您提供更多的細節方向有用。

相關問題