2012-10-03 127 views
0

所以這就是我想要實現的。哪個視圖控制器正在實例化目標視圖控制器?

我有一個共同的MapViewController和我想發送數據的兩個其他視圖控制器。 ExploreViewControllerSavedPlacesViewController

我沒有使用segues來做到這一點。相反,我使用的是這樣的:

[mapButton addTarget:self action:@selector(showExploreMap:) 
      forControlEvents:UIControlEventTouchUpInside]; 

,然後宣佈showExploreMap方法將MapViewController推到navigationController

我已經爲ExploreViewController做了這個,它完美的作品,但我不知道我怎麼能這樣做SavedPlacesViewController因爲數據來自不同的模型。

我覺得我需要弄清楚哪個ViewControllerMapViewController,所以我可以找出使用哪個數據模型。

有什麼辦法可以做到這一點?

回答

0

在MapViewController中合成一個NSString。

MapViewController.h: -

NSString *fromClass; 
@property(nonatomic,retain)NSString *fromClass; 

MapViewController.m: -

@synthesize fromClass; 

ExploreViewController.m

-(IBAction)showExploreMap:(id)sender{ 
    MapViewController *obj=[[MapViewController alloc]initWithNibName:@"MapViewController Bundle:nil]; 
    obj.fromClass=[NSString stringWithString:@"ExploreViewController"]; 
    [self.navigationController pushViewController:obj animated:YES]; 
} 

SavedPlacesViewController.m

MapViewController *obj=[[MapViewController alloc]initWithNibName:@"MapViewController Bundle:nil]; 
obj.fromClass=[NSString stringWithString:@"SavedPlacesViewController"]; 
[self.navigationController pushViewController:obj animated:YES]; 

MapViewController.m

if([fromClass isEqualToString @"ExploreViewController"]) 
{ 
    //use datasource for ExploreViewController 
} 
else 
{ 
    //use datasource for SavedPlacesViewController 
} 
+0

太棒了!非常感謝Pratyusha。你爲我節省了很多時間! – Amit

相關問題