两个视图控制器的TouchesMoved方法

时间:2012-10-05 07:54:06

标签: ios objective-c uiviewcontroller touchesmoved touches

在我的应用程序中有两个视图控制器。我在两个视图控制器中编写了touchesmoved方法。但即使我在模拟器上触摸第二个视图控制器,也会调用第一个VC触摸移动方法。

// for 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];
}

因此,一旦调用上述方法,它将导航到第二个视图控制器“ViewDIDLoad”方法。在这个文件中,我写了另外一个移动方法。

// for VCTwo

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

现在,如果我触摸第二个视图控制器,则调用第一个VC触摸方法而不是第二个VC触摸方法。

有没有办法做到这一点?我需要针对不同视图控制器的不同触摸移动方法。

1 个答案:

答案 0 :(得分:1)

如果要从第一个视图控制器转移到第二个视图控制器, 您可以尝试以下方法:presentModalViewController:animated:

touchesMoved:withEvevt:的第一个视图控制器中

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

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

在第二个视图控制器中,您可以使用dismissModalViewControllerAnimated:返回第一个视图控制器。

希望这会有所帮助。