Estou fazendo um aplicativo onde adiciono uma subvisão a uma visão usando addSubview:em um IBAction. Da mesma forma, quando o botão com isso IBActionfor tocado novamente, deve-se chamar removeFromSuperviewaquela subvisualização adicionada a IBAction:
PSEUDO-CÓDIGO
-(IBAction)showPopup:(id)sender
{
System_monitorAppDelegate *delegate = (System_monitorAppDelegate *)[[UIApplication sharedApplication] delegate];
UIView *rootView = delegate.window.rootViewController.view;
if([self popoverView] is not on rootView)
{
[rootView addSubview:[self popoverView]];
}
else
{
[[self popoverView] removeFromSuperview];
}
}