Skip to content

Commit f6cab02

Browse files
fix issue #21
1 parent 69ebd58 commit f6cab02

8 files changed

Lines changed: 50 additions & 13 deletions

File tree

WYPopoverController/WYPopoverController.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Version 0.1.3
2+
Version 0.1.4-beta
33
44
WYPopoverController is available under the MIT license.
55

WYPopoverController/WYPopoverController.m

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Version 0.1.3
2+
Version 0.1.4-beta
33
44
WYPopoverController is available under the MIT license.
55
@@ -1895,9 +1895,14 @@ - (void)popoverOverlayView:(WYPopoverOverlayView*)aOverlayView didTouchAtPoint:(
18951895
{
18961896
BOOL isTouched = [containerView isTouchedAtPoint:[containerView convertPoint:aPoint fromView:aOverlayView]];
18971897

1898-
if (!isTouched && delegate && [delegate respondsToSelector:@selector(popoverControllerShouldDismiss:)])
1898+
if (!isTouched)
18991899
{
1900-
BOOL shouldDismiss = [delegate popoverControllerShouldDismiss:self];
1900+
BOOL shouldDismiss = !viewController.modalInPopover;
1901+
1902+
if (shouldDismiss && delegate && [delegate respondsToSelector:@selector(popoverControllerShouldDismiss:)])
1903+
{
1904+
shouldDismiss = [delegate popoverControllerShouldDismiss:self];
1905+
}
19011906

19021907
if (shouldDismiss)
19031908
{

WYPopoverController/WYStoryboardPopoverSegue.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Version 0.1.3
2+
Version 0.1.4-beta
33
44
WYPopoverController is available under the MIT license.
55

WYPopoverController/WYStoryboardPopoverSegue.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Version 0.1.3
2+
Version 0.1.4-beta
33
44
WYPopoverController is available under the MIT license.
55

demos/Demo/WYPopoverDemo.xcodeproj/project.pbxproj

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
976A342417BB9AEB0071BF21 /* WYPopoverDemo */ = {
126126
isa = PBXGroup;
127127
children = (
128+
E0F0630617E7297D004330A2 /* iPad */,
128129
97FA5C2B17D1A82E00F611A0 /* WYPopoverController */,
129130
976A344717BBAA4C0071BF21 /* WYSettingsViewController.h */,
130131
976A344817BBAA4C0071BF21 /* WYSettingsViewController.m */,
@@ -171,6 +172,13 @@
171172
path = ../../../WYPopoverController;
172173
sourceTree = "<group>";
173174
};
175+
E0F0630617E7297D004330A2 /* iPad */ = {
176+
isa = PBXGroup;
177+
children = (
178+
);
179+
name = iPad;
180+
sourceTree = "<group>";
181+
};
174182
/* End PBXGroup section */
175183

176184
/* Begin PBXNativeTarget section */
@@ -333,9 +341,9 @@
333341
GCC_PRECOMPILE_PREFIX_HEADER = YES;
334342
GCC_PREFIX_HEADER = "WYPopoverDemo/WYPopoverDemo-Prefix.pch";
335343
INFOPLIST_FILE = "WYPopoverDemo/WYPopoverDemo-Info.plist";
336-
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
344+
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
337345
PRODUCT_NAME = "$(TARGET_NAME)";
338-
TARGETED_DEVICE_FAMILY = 1;
346+
TARGETED_DEVICE_FAMILY = "1,2";
339347
WRAPPER_EXTENSION = app;
340348
};
341349
name = Debug;
@@ -346,9 +354,9 @@
346354
GCC_PRECOMPILE_PREFIX_HEADER = YES;
347355
GCC_PREFIX_HEADER = "WYPopoverDemo/WYPopoverDemo-Prefix.pch";
348356
INFOPLIST_FILE = "WYPopoverDemo/WYPopoverDemo-Info.plist";
349-
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
357+
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
350358
PRODUCT_NAME = "$(TARGET_NAME)";
351-
TARGETED_DEVICE_FAMILY = 1;
359+
TARGETED_DEVICE_FAMILY = "1,2";
352360
WRAPPER_EXTENSION = app;
353361
};
354362
name = Release;

demos/Demo/WYPopoverDemo/WYAllDirectionsViewController.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
#import "WYPopoverController.h"
1111

12-
@interface WYAllDirectionsViewController : UIViewController <WYPopoverControllerDelegate>
12+
@interface WYAllDirectionsViewController : UIViewController
1313
{
1414
}
1515

demos/Demo/WYPopoverDemo/WYAllDirectionsViewController.m

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99
#import "WYSettingsViewController.h"
1010
#import "WYAnotherViewController.h"
1111

12-
@interface WYAllDirectionsViewController ()
12+
@interface WYAllDirectionsViewController () <WYPopoverControllerDelegate, UIPopoverControllerDelegate>
1313
{
1414
WYPopoverController* popoverController;
15+
UIPopoverController* standardPopoverController;
1516
}
1617

1718
- (IBAction)showPopover:(id)sender;
@@ -57,10 +58,12 @@ - (IBAction)showPopover:(id)sender
5758
UIView* btn = (UIView*)sender;
5859

5960
WYSettingsViewController* settingsViewController = [[WYSettingsViewController alloc] init];
60-
settingsViewController.contentSizeForViewInPopover = CGSizeMake(280, 200);
61+
settingsViewController.preferredContentSize = CGSizeMake(280, 200);
6162
settingsViewController.title = @"Settings";
6263
[settingsViewController.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done:)]];
6364

65+
settingsViewController.modalInPopover = NO;
66+
6467
UINavigationController* contentViewController = [[UINavigationController alloc] initWithRootViewController:settingsViewController];
6568

6669
popoverController = [[WYPopoverController alloc] initWithContentViewController:contentViewController];
@@ -69,6 +72,12 @@ - (IBAction)showPopover:(id)sender
6972
popoverController.popoverLayoutMargins = UIEdgeInsetsMake(10, 10, 10, 10);
7073
popoverController.wantsDefaultContentAppearance = NO;
7174
[popoverController presentPopoverFromRect:btn.bounds inView:btn permittedArrowDirections:WYPopoverArrowDirectionAny animated:YES];
75+
76+
/*
77+
standardPopoverController = [[UIPopoverController alloc] initWithContentViewController:contentViewController];
78+
standardPopoverController.delegate = self;
79+
[standardPopoverController presentPopoverFromRect:btn.bounds inView:btn permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
80+
*/
7281
}
7382
else
7483
{
@@ -98,6 +107,19 @@ - (void)popoverControllerDidDismiss:(WYPopoverController *)controller
98107
popoverController = nil;
99108
}
100109

110+
#pragma mark - UIPopoverControllerDelegate
111+
112+
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)aPopoverController
113+
{
114+
return YES;
115+
}
116+
117+
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)aPopoverController
118+
{
119+
standardPopoverController.delegate = nil;
120+
standardPopoverController = nil;
121+
}
122+
101123
#pragma mark - UIViewControllerRotation
102124

103125
// Applications should use supportedInterfaceOrientations and/or shouldAutorotate..

demos/Demo/WYPopoverDemo/WYPopoverDemo-Info.plist

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
<string>1.0</string>
2525
<key>LSRequiresIPhoneOS</key>
2626
<true/>
27+
<key>NSMainNibFile~ipad</key>
28+
<string>WYStoryboard-iPad</string>
2729
<key>UIMainStoryboardFile</key>
2830
<string>WYStoryboard</string>
2931
<key>UIRequiredDeviceCapabilities</key>

0 commit comments

Comments
 (0)