Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 触摸开始在下一个视图控制器中识别_Ios_Objective C_Uiviewcontroller_Presentviewcontroller - Fatal编程技术网

Ios 触摸开始在下一个视图控制器中识别

Ios 触摸开始在下一个视图控制器中识别,ios,objective-c,uiviewcontroller,presentviewcontroller,Ios,Objective C,Uiviewcontroller,Presentviewcontroller,在下一个UIViewController中,直到ViewDidDisplay方法出现之前,我不会做任何事情-但是,开始的触摸仍会在下一个viewcontroller中被识别。我认为问题在于,您称之为“Lobble”的VC在您展示后被释放。这在响应者链中是不考虑的。将该引用移动为显示视图控制器的属性: -(void)moveToNextWeldCustomViewWithOption:(NSString *)option andType:(NSString *)type { WeldDe

在下一个UIViewController中,直到ViewDidDisplay方法出现之前,我不会做任何事情-但是,开始的触摸仍会在下一个viewcontroller中被识别。

我认为问题在于,您称之为“Lobble”的VC在您展示后被释放。这在响应者链中是不考虑的。将该引用移动为显示视图控制器的属性:

-(void)moveToNextWeldCustomViewWithOption:(NSString *)option andType:(NSString *)type {

    WeldDesignViewController *lobby = [self.storyboard instantiateViewControllerWithIdentifier:@"WeldDesignViewController"];

    lobby.option = option;
    lobby.type = type;

    [self presentViewController:lobby animated:NO completion:nil];

}

您可能还需要在所展示的VC中实现
ToucheBagan
,因为它可能是沿着响应者链到前一个控制器。

我认为问题在于,您称之为“大厅”的VC在您展示后被解除分配。这在响应者链中是不考虑的。将该引用移动为显示视图控制器的属性:

-(void)moveToNextWeldCustomViewWithOption:(NSString *)option andType:(NSString *)type {

    WeldDesignViewController *lobby = [self.storyboard instantiateViewControllerWithIdentifier:@"WeldDesignViewController"];

    lobby.option = option;
    lobby.type = type;

    [self presentViewController:lobby animated:NO completion:nil];

}

您可能还需要在所介绍的VC中实现
touchesBagan
,因为它可能是沿着响应者链到上一个控制器。

不清楚您到底期望什么以及发生了什么。是否要在上一个视图控制器中获得这些接触?你不是想要它们而是得到它们吗?@ChrisTrahey简言之,下一个视图控制器正在记录上一个视图控制器中的触摸。因此,视图控制器2号不再出现在屏幕上,而是正在获得触摸?这两个视图控制器是同一个类吗?现在还不清楚您到底在期待什么以及发生了什么。是否要在上一个视图控制器中获得这些接触?你不是想要它们而是得到它们吗?@ChrisTrahey简言之,下一个视图控制器正在记录上一个视图控制器中的触摸。因此,视图控制器2号不再出现在屏幕上,而是正在获得触摸?这两个视图控制器是同一个类吗?不幸的是,读完后我希望它会这么简单,我错过了一个相当愚蠢的错误。但是,我仍然能够在下一个viewcontroller中触摸上一个viewcontroller中的视图。本质上,我可以在与上一个视图相同的位置单击,并且它们仍然会从上一个viewcontroller中开始的触摸记录。天哪,最后一行日志说明了很多!问题似乎是“上游”,您的TypeOfWeldViewController的视图不在窗口层次结构中。。。这是如何呈现的?你能在整个应用程序中尝试执行我回答中的建议并报告吗?必须保留对显示的视图控制器的强引用,这些视图控制器在显示它们的范围内仍然有效。仅此一项就会引发各种问题。更新答案!不幸的是,读完这本书后,我希望它会这么简单,我错过了一个相当愚蠢的错误。但是,我仍然能够在下一个viewcontroller中触摸上一个viewcontroller中的视图。本质上,我可以在与上一个视图相同的位置单击,并且它们仍然会从上一个viewcontroller中开始的触摸记录。天哪,最后一行日志说明了很多!问题似乎是“上游”,您的TypeOfWeldViewController的视图不在窗口层次结构中。。。这是如何呈现的?你能在整个应用程序中尝试执行我回答中的建议并报告吗?必须保留对显示的视图控制器的强引用,这些视图控制器在显示它们的范围内仍然有效。仅此一项就会引发各种问题。更新答案!
@property (nonatomic, strong) WeldDesignViewController* lobby;
// ...
-(void)moveToNextWeldCustomViewWithOption:(NSString *)option andType:(NSString *)type {

   self.lobby = [self.storyboard instantiateViewControllerWithIdentifier:@"WeldDesignViewController"];

    lobby.option = option;
    lobby.type = type;

    [self presentViewController:self.lobby animated:NO completion:nil];

}