【问题标题】:TouchesMoved method for two view controllers两个视图控制器的 TouchesMoved 方法
【发布时间】:2012-10-05 07:54:06
【问题描述】:

在我的应用中有两个视图控制器。我在两个视图控制器中都编写了 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 touchesmethod 而不是第二个 VC touches 方法。

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

【问题讨论】:

    标签: ios objective-c uiviewcontroller touchesmoved touches


    【解决方案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: 回到第一个视图控制器。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      相关资源
      最近更新 更多