我正在使用自定義手勢識別器(如鏈接Intercepting/Hijacking iPhone Touch Events for MKMapView中給出的)來檢測MKMapView上的觸摸事件。手勢識別器在WildcardGestureRecognizer.h中定義,並在WildcardGestureRecognizer.m文件中實現。當該手勢識別器被添加到的MKMapView,人們可以從下面的方法讀取任何觸摸事件從自定義類文件調用MainViewController中的方法
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (touchesBeganCallback)
touchesBeganCallback(touches, event);
NSLog(@"touchesBegan");
}
基於此觸摸檢測我想從MainViewController(含的MKMapView)調用方法tapMethod。
-(void) tapMethod
{
dontUpdateLocation =1;// a variable to check stoppoing of location update.
NSLog(@" map tapped");
}
我嘗試以下
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (touchesBeganCallback)
touchesBeganCallback(touches, event);
NSLog(@"touchesBegan");
MainViewController *updateController = [[MainViewController alloc]init ];
[updateController tapMethod];
[updateController release];
}
它可以打印 「地圖挖」,但不會改變變量dontUpdateLocation的價值。 我該怎麼辦?
變量dontUpdateLocation被初始化了什麼值?除了'tapMethod'之外,還有其他什麼方法可以修改這個變量? – Mat
@Mat它用值0初始化。沒有其他方法修改這個變量。 – chatur
NSLog(@「%i」,dontUpdateLocation);'NSLog(@「map tapped」)之前''; dontUpdateLocation是一個int嗎? – Mat