在我的应用程序中有两个视图控制器。我在两个视图控制器中编写了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触摸方法。
有没有办法做到这一点?我需要针对不同视图控制器的不同触摸移动方法。
答案 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:
返回第一个视图控制器。
希望这会有所帮助。