My goal is to keep same coordinates for a UIPopoverController with just changing arrow offset. So basically i have three buttons touching each of them shows up a popover. Wh
Yes, you can do that. You have to create an aux view, with alpha=0.0f, and use it to guide the arrow.
For example:
auxView = [[UIView alloc] initWithFrame:firstButton.frame];
auxView.alpha = 0.0 ;
auxView.userInteractionEnabled = NO;
[firstButton.superView addSubview:auxView];
[auxView release];
Ok, now you open popover using that view as arrow's guide.
[thePopoverController presentPopoverFromRect:auxView.bounds inView:auxView
permitedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
And now you only have to move the view:
auxView.frame = secondButton.frame;
Use animations for that move if you want.
One more thing, for this kind of arrow to button, I prefer that the arrow touches the button. You can use:
presentPopoverFromRect:CGRectInset(auxView.bounds, 4.0, 4.0)