UIDocumentInteractionController が iPadで有効にならない

Deployment device が iPhoneだと正常に起動するが、

Deployment device が iPadだと連携先のメニューが表示されない。

なんで?

iPhoneiPadで選択メニューの表示方法が異なる。

 iPhoneの場合は、中央下に表示されるが、iPadの場合は、座標を指定しないとダメみたい。

トリガーのボタンの右下の座標を基準に、選択メニューを表示するようにしてみた。

- (IBAction)btnOpen:(UIButton *)sender {
    [self fileOpen:@"sample.pdf" ui:sender];
}

-(void)fileOpen:(NSString*)fileName ui:(UIButton*)ui {
    NSURL *url = [NSURL fileURLWithPath:fileName];

    CGRect rect = CGRectMake(ui.frame.origin.x + ui.frame.size.width ,ui.frame.origin.y + ui.frame.size.height,0,0);
    isValid =[_docInteractionController
            presentOpenInMenuFromRect:rect
                               inView:self.view
                             animated:YES];
}

 上記のように実装しても、iPhoneでは相変わらず、下中央に開く

 


参考

ios - UIDocumentInteractionController not appearing on iPad but working on iPhone - Stack Overflow