だから私は3つのビューコントローラ、名前、それを持っているINIT:MapVCでのiOSのObj-Cのビューを一度
- Dashboard
- Map
- Location List
を、私はXMapViewのカスタムクラスで1つの大のUIViewを添付してください。 XMapViewの中で私はこのコードを持っています。
したがって、MapVCは基本的にXmapViewを挿入して表示します。
私はこのコードをMapVCコントローラに持っています。 MapVC内の.hファイルへのカスタムクラスでViewを上書きしたことに注意してください。
//.h file
@property (strong, nonatomic) IBOutlet XMapView *mapStoreView;
//.m file
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
// this following code will load the Map from the XMapView to the MapVC
[self.mapStoreView loadMap:self.results viewController:self selectedOutletFromList:self.selectedOutletFromList];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.mapStoreView removeFromSuperview];
self.mapStoreView = nil;
self.mapStoreView.mkMapView.delegate = nil;
[self.mapStoreView.mkMapView removeAnnotations:self.mapStoreView.mkMapView.annotations];
self.results = nil;
}
シーケンスはダッシュボードです - > MapVC - >所在地一覧
テストケース:
1. Dashboard -> MapVC, map will load.
2. MapVC -> Location List -> MapVC, map will not load.
3. Dashboard -> MapVC -> Dashboard -> MapVC, map will always load.
ここでの問題は何ですか?何か不足していますか?あなたのコードで
なぜあなたは[self.mapStoreView removeFromSuperview]ですか; self.mapStoreView = nil;あなたはアウトレットからこれを作っており、あなたは再び割り当てられません。それは表示されていません。この –
を削除しないでください。なぜなら、あなたはviewDidDisappearのマップを修正しているからです。 – KKRocks
表示されていない場合は、DashboardからMapVCに来ると、なぜ読み込まれますか? – Alvin