Do the following steps
1) В действии кнопки (при нажатии на нее должна появиться всплывающая подсказка) введите код
[здесь PopOverContentViewController - это viewController, в котором у меня есть представление таблицы и несколько списков элементов, которые должны отображаться при появлении всплывающего окна]
- (IBAction)callPopOver:(id)sender
{
UIButton *button = (UIButton*)sender;
PopOverContentViewController1 *popOverContent = [[PopOverContentViewController1 alloc]initWithNibName:@"PopOverContentViewController1" bundle:nil];
UINavigationController *navbar = [[UINavigationController alloc] initWithRootViewController:popOverContent];
navbar.contentSizeForViewInPopover = CGSizeMake(266, 200);
popover = [[UIPopoverController alloc] initWithContentViewController:navbar];
popover.delegate = self;
[popover presentPopoverFromRect:CGRectMake(button.frame.size.width / 2, button.frame.size.height / 1, 1, 1) inView:button permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
[popover setPopoverContentSize:CGSizeMake(266, 200) animated:YES];
[popUpContent release];
}
2) теперь для изменения табличного представления при нажатии на любую из строк введите этот код в PopOverViewController.m
[здесь PopOverViewController2 - это ViewController, где у нас будет отображаться следующий табличный вид]
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
PopOverViewController2 *secondViewController = [[PopOverViewController2 alloc] init];
[self.navigationController pushViewController:secondViewController animated:YES];
[secondViewController release];
}
3) чтобы избежать изменения размера всплывающего окна во время навигации, напишите следующий код в viewDidLoad обоих контроллеров представления (т. Е. PopOverContentViewController1 и PopOverContentViewController2)
- (void)viewDidLoad
{
[super viewDidLoad];
[self setContentSizeForViewInPopover:CGSizeMake(266, 200)];
}