Поскольку вы, похоже, уже используете PLSQL, почему бы не решить его там?
if user_flag='Y' then
open your_cursor for select .. (query for when flag=Y)
else
open your_cursor for select ... (query for when flag !=Y)
end if;
Вы сделали бы это как так. Обратите внимание, что 'locationInView' возвратит координаты касания относительно указанного представления, таким образом, касание в верхнем левом углу представления возвратится (0,0) независимо от того, где то представление является экранным.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
// gets the coordinats of the touch with respect to the specified view.
CGPoint touchPoint = [touch locationInView:self];
// test the coordinates however you wish,
...
}
Для тестирования против сферы, Вы вычислили бы расстояние от точки соприкосновения до центра сферы, затем проверить, было ли это меньше, чем радиус сферы.