我创建了一个应用程序,我想在其中使用touchbegan方法。为此,我使用了以下代码:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//Get all the touches.
NSSet *allTouches = [event allTouches];
//Number of touches on the screen
if([allTouches count] > 0 && self.view!=comparedView.view)
{
//Navigate to next screen here likewise you generally do
ActionViewController *actController = [[ActionViewController alloc] init];
UINavigationController *nvController = [[UINavigationController alloc]
initWithRootViewController:actController];
nvController.navigationBarHidden = YES;
CGRect frame = [[nvController navigationBar] frame];
frame = CGRectMake(0.0,0.0, 320.0, 460.0);
[[nvController navigationBar] setFrame:frame];
[self setView:[nvController view]];
[actController release];
}
}
触摸我的第一个视图的屏幕上的任何位置,将执行以下代码,它将转到下一个视图。但问题是,当我转到最后一个视图并触摸该视图中的imageview时,会调用上述方法。
我不知道它是如何发生的。
答案 0 :(得分:2)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
,直到视图控制器被释放或触摸事件被禁用。
每次创建视图并将其添加到同一视图控制器中,因此所有视图都会调用触摸开始