Skip to content

Commit

Permalink
Fix devmenu on iPad
Browse files Browse the repository at this point in the history
Summary:
This fixes the following problem on iPad (happens when trying to show the devmenu ActionSheet):
> Terminating app due to uncaught exception 'NSGenericException', reason: 'Your application has presented a UIAlertController () of style UIAlertControllerStyleActionSheet. The modalPresentationStyle of a UIAlertController with this style is UIModalPresentationPopover. You must provide location information for this popover through the alert controller's popoverPresentationController. You must provide either a sourceView and sourceRect or a barButtonItem. If this information is not known when you present the alert controller, you may provide it in the UIPopoverPresentationControllerDelegate method -prepareForPopoverPresentation.'

I see 2 ways of fixing the issue: falling back to Alert (always displayed in the center) or adding a fake view somewhere on the screen to display the ActionSheet.

Reviewed By: mmmulani

Differential Revision: D3989672

fbshipit-source-id: 59fabc50ec1aac3ae6ddd7ecf4d8e8e5b9586dba
  • Loading branch information
frantic authored and Facebook Github Bot committed Oct 10, 2016
1 parent f272f97 commit fd554c3
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion React/Modules/RCTDevMenu.m
Original file line number Diff line number Diff line change
Expand Up @@ -513,9 +513,12 @@ - (void)addItem:(RCTDevMenuItem *)item
}

NSString *title = [NSString stringWithFormat:@"React Native: Development (%@)", [_bridge class]];
// On larger devices we don't have an anchor point for the action sheet
UIAlertControllerStyle style = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone ? UIAlertControllerStyleActionSheet : UIAlertControllerStyleAlert;
_actionSheet = [UIAlertController alertControllerWithTitle:title
message:@""
preferredStyle:UIAlertControllerStyleActionSheet];
preferredStyle:style];

NSArray<RCTDevMenuItem *> *items = [self menuItems];
for (RCTDevMenuItem *item in items) {
switch (item.type) {
Expand Down

0 comments on commit fd554c3

Please sign in to comment.