複数のviewControllerを持つアプリがあり、これらのviewControllerの一部にはさまざまなタスクを実行するメソッドが含まれています。私がする必要があるのは、最初のviewControllerがロードされたときに、バックグラウンドで実行されるように他のviewControllerでこれらのメソッドを呼び出すことですが、これを行うのにいくつかの問題があります。
4つのviewController、A、B、C、およびDがあるとします。ここで、Aは最初のviewControllerであり、各viewControllerには、それぞれaMethod、bMethod、cMethod、およびdMethodがあります。関連するコードは次のとおりです。
私の最初のviewController(AviewController)の内部:
.hファイル内:
#import "BViewController"
#import "CViewController"
#import "DViewController"
@interface AViewController:UIViewController {
BViewController *bViewCon;
CViewController *cViewCon;
DViewController *dViewCon;
}
@property (nonatomic, retain) BViewController *bViewCon;
@property (nonatomic, retain) CViewController *cViewCon;
@property (nonatomic, retain) DViewController *dViewCon;
@end
私の.mファイルには次のものがあります。
#import "BViewController"
#import "CViewController"
#import "DViewController"
@implementation AviewController
@synthesize bViewCon, cViewCon, dViewCon;
- (void) viewDidLoad {
[super viewDidLoad];
bViewCon = [[BViewController alloc] init];
[bViewCon bMethod];
...
}
ただし、「「BViewController」の表示された@interfaceがセレクター「bMethod」を宣言していません」というエラーメッセージが表示されます。このクラス(つまりAViewController)と同じ方法で、他のviewControllerから他のメソッドを呼び出す必要があります。
返信してくださった皆様、ありがとうございました。