0

私のアプリには 2 つのビュー コントローラーがあります。両方のView Controllerにtouchesmovedメソッドを書きました。しかし、シミュレーターで2番目のView Controllerに触れても、最初のVC touches movedメソッドが呼び出されます。

// VCOne の場合

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"first view vc move method");

     UIStoryboard *storyboard = self.storyboard;
     ThreadedView *secViewController = [storyboard instantiateViewControllerWithIdentifier:@"threaded"];
     [self.view addSubview:secViewController.view];

     [self viewDidUnload];
}

したがって、上記のメソッドが呼び出されると、2 番目のビュー コントローラーの「ViewDIDLoad」メソッドに移動します。このファイルには、もう 1 つタッチ移動メソッドを記述しています。

// VCTwo の場合

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"second view vc move method");
}

2番目のView Controllerでタッチすると、2番目のVC touchesメソッドの代わりに最初のVC touchesmethodが呼び出されます。

これを行う方法はありますか?ビューコントローラーごとに異なるタッチ移動メソッドが必要でした。

4

1 に答える 1

1

最初のビュー コントローラーから 2 番目のビュー コントローラーに移行する場合は、次の方法を試すことができますpresentModalViewController:animated:

最初のtouchesMoved:withEvevt:View Controllerで

NSLog(@"first view vc move method");

UIStoryboard *storyboard = self.storyboard;
ThreadedView *secViewController = [storyboard instantiateViewControllerWithIdentifier:@"Threaded"];
[self presentModalViewController:secViewController animated:NO];

2番目のView Controllerでは、dismissModalViewControllerAnimated:最初のView Controllerに戻るために使用できます。

これが役立つことを願っています。

于 2012-10-05T08:56:38.013 に答える