Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hide UIPopover after selecting row

I am new to iPad developer,

I am using UIPopover in my application, when i select any row in my popover, my popover is not getting hide it still in the view, it is getting hide when i touch outside anywhere on the screen.

I want to hide popover after user selects any row.

here is my code snippet,

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
    for(int index=0;index<=indexPath.row;index++)
    {
        UITableViewCell *cell =[tableView cellForRowAtIndexPath:indexPath];
        lbl.text=cell.textLabel.text;
    }
}

Logic: When i select any row of popover corresponding text will be fetched and gets stored into label.

Any help will be appreciated.

EDIT

UIViewController* popoverContent = [[UIViewController alloc]init];
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(110, 0, 500, 4)];

popoverPolicyNameTable = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 250, 200) style:UITableViewStylePlain];// size of tableview inside popover

[popoverPolicyNameTable setDelegate:(id<UITableViewDelegate>)self]; 
[popoverPolicyNameTable setDataSource:(id<UITableViewDataSource>)self]; 
[self.view addSubview:popoverPolicyNameTable];
[popoverPolicyNameTable release];

[popoverView addSubview:popoverPolicyNameTable];
popoverContent.view = popoverView;
popoverContent.contentSizeForViewInPopover = CGSizeMake(250, 200); //size of popover border
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];

[self.popoverController  presentPopoverFromRect:CGRectMake(350,100, 35, 35) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; //size of arrow

[popoverContent release];
[popoverView release];
like image 346
Krunal Avatar asked Jun 06 '26 04:06

Krunal


2 Answers

You need to implement something like this

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController1{

    [self.popoverController dismissPopoverAnimated:YES];
    self.popoverController=nil;

}
like image 153
Tripti Kumar Avatar answered Jun 08 '26 18:06

Tripti Kumar


Add one variable inside the Class which is having your UITableView:

id parent;

Then properties and synthesize it:

@property(nonatomic, retain) id parent;

@synthesize parent;

Then where you are creating the object of this ViewController to add in Popovercontroller, do like this

myTableViewController.parent = myPopoverControllerObject;

Now in didSelectRowAtIndexPath:

[parent dismissPopoverAnimated:YES];

And you are done!!!

like image 44
Kanan Vora Avatar answered Jun 08 '26 17:06

Kanan Vora



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!