いくつかのビューとカスタムのビュー コントローラーがありますuiview
。指で画面に触れると、カスタム uiview のおかげで線が引けます。
そのために、通知センターを介してカスタムlocation.x
に送信しますlocation.y
uiview
CGPoint location = [touch locationInView:self.view];
userInfo = [NSMutableDictionary dictionary];
[userInfo setObject:[NSNumber numberWithFloat:location.x] forKey:@"x"];
[userInfo setObject:[NSNumber numberWithFloat:location.y] forKey:@"y"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"addLine" object:self userInfo:userInfo];
そして、私のカスタム uiview では、次のようにすべてを受け取ります。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addLine:) name:@"addLine" object:nil];
NSDictionary* userInfo = notification.userInfo;
float x = [[userInfo objectForKey:@"x"] floatValue];
float y = [[userInfo objectForKey:@"y"] floatValue];
p = CGPointMake(x,y);
そしてそれはうまくいきます!!! でも初めて!!!
問題は 、カスタム uiview が初期化されているメインのビューコントローラーを閉じて戻ってきた場合 (たとえば、もう一度再生するため)、このエラーが表示されることです。
[__NSCFType addLine:]: 認識されないセレクターがインスタンス 0x1454dec0 に送信されました *キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[__NSCFType addLine:]: 認識されないセレクターがインスタンス 0x1454dec0 に送信されました'
オブザーバーが解除された後、再び機能しないようです...助けてもらえますか?
ありがとう