0

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

// 对于 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”方法。在这个文件中,我又写了一个触摸移动的方法。

// 对于 VCtwo

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

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

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

4

1 回答 1

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:返回到第一个视图控制器。

希望这会有所帮助。

于 2012-10-05T08:56:38.013 回答