こんにちは、奇妙な問題があります。
私のMainViewControllerクラスでは、ボタンが押されるたびに通知を投稿します
[[NSNotificationCenter defaultCenter] postNotificationName:@"step" object:nil];
クラスでは、私はオブザーバーを持っています
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(step) name:@"step" object:nil];
「ステップ」メソッドを実行します
- (void)step {
NSLog(@"works");
}
Slide1ViewControllerと呼ばれる別のクラスには、オブザーバーもあります
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
NSLog(@"works 2");
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(step) name:@"step" object:nil];
}
return self;
}
そして dealloc メソッドはそれを削除します
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"step" object:nil];
}
MainViewController ではメソッドが呼び出されますが、Slide1ViewController では呼び出されません。
Slide1ViewController は次のように初期化されます。
Slide1ViewController*test = [[Slide1ViewController alloc] initWithNibName:@"Slide1ViewController" bundle:nil];
test.view.frame = CGRectMake(1024*0, 0, 1024, 768);
[contentScrollView addSubview:test.view];