プロジェクトでタブ バー コントローラーを使用しています。FirstViewController には Mapbox マップ ビューがあり、SecondViewController には、押されたときにタイル レイヤーをマップ ビューに追加するボタンがあります。これが私が試したことです。エラーが発生します ***SecondViewController.m で宣言されていない識別子 '_mapView' が使用されています
//FirstViewController.h
#import <UIKit/UIKit.h>
#import <MapBox/MapBox.h>
#import "SecondViewController.h"
#import "SecondViewController.m"
@interface FirstViewController : UIViewController
@property (strong, nonatomic) IBOutlet RMMapView *mapView;
@end
//SecondViewController.h
#import <UIKit/UIKit.h>
#import <MapBox/MapBox.h>
#import "FirstViewController.h"
#import "FirstViewController.m"
@interface SecondViewController : UIViewController
- (IBAction)stationingLayerButton:(id)sender;
@end
//SecondViewController.m
- (IBAction)stationingLayerButton:(id)sender {
RMMBTilesSource *stationingMap = [[RMMBTilesSource alloc] initWithTileSetURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Stationing20" ofType:@"mbtiles"]]];
[_mapView addTileSource:stationingMap atIndex:2];
}
}
1 つのビュー コントローラーのみを使用するプロジェクトでテストしたので、マップ呼び出しは正しいです。Tab Bar Controller で試してみると、このエラーが発生します。
私の質問は
1. FirstViewController で mapView を取得して、SecondViewController での呼び出しに応答するにはどうすればよいですか? 2.これはできますか?これにより2つの間の通信が開かれると考えてクラスファイルをインポートしましたが、このエラーで立ち往生しています。