Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- UIPopoverController hiding when it shouldn't
- // This code is within the controller's "viewDidLoad" method
- lockState = @"LockOpen"; //lock state is an NSString variable used to determine if the lock is open or closed.
- UIButton *lock = [UIButton buttonWithType:UIButtonTypeCustom];
- lock.frame = CGRectMake( 0, 0, 30, 30 );
- [lock setImage:[UIImage imageNamed:@"LockOpen.png"] forState:UIControlStateNormal];
- [lock addTarget:self action:@selector(toggleLock) forControlEvents:UIControlEventTouchUpInside];
- self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:lock];
- // End viewDidLoad method
- - (void)toggleLock
- {
- if ( [lockState isEqualToString:@"LockOpen"] )
- {
- lockState = @"LockClosed";
- [((UIButton *)self.navigationItem.rightBarButtonItem.customView) setImage:[UIImage imageNamed:@"LockClosed.png"] forState:UIControlStateNormal];
- }
- else
- {
- lockState = @"LockOpen";
- [((UIButton *)self.navigationItem.rightBarButtonItem.customView) setImage:[UIImage imageNamed:@"LockOpen.png"] forState:UIControlStateNormal];
- }
- [pictureDisplay toggleCanHidePopover]; //pictureDisplay is a reference variable to the display view of the UISplitViewController
- }
- - (void)toggleCanHidePopover
- {
- if ( canHidePopover )
- canHidePopover = NO; //variable used to determine whether or not the UIPopoverView can be dismissed
- else
- canHidePopover = YES;
- }
- - (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
- {
- #ifdef PopoverLockEnabled
- if ( popover == nil )
- {
- popover = popoverController; //ivar
- popoverController.delegate = self;
- }
- #endif
- popoverController.passthroughViews = [NSArray arrayWithObjects:self.navigationController.navigationBar,
- #ifdef PopoverLockEnabled
- self.tabBarController.tabBar,
- #endif
- nil];
- [self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
- }
- #ifdef PopoverLockEnabled
- - (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
- {
- NSLog(@"%@", canHidePopover? @"YES":@"NO" );
- return canHidePopover;
- }
- #endif
Add Comment
Please, Sign In to add comment