UIDocumentMenuViewController / UIDocumentPickerViewController slow to show in view

1.3k views Asked by At

I am trying to use the iOS file picker to select text files but when I instantiate and present (modally) a UIDocumentMenuViewController or a UIDocumentPickerViewController the UI takes a while to show up.

This is the code I tried to use for the UIDocumentMenuViewController the one for the UIDocumentPickerViewController would be fairly similar:

    UIDocumentMenuViewController *menuVC = [[UIDocumentMenuViewController alloc] initWithDocumentTypes:@[(NSString *)kUTTypeText] inMode:UIDocumentPickerModeOpen];
menuVC.delegate = self;
[self presentViewController:menuVC animated:YES completion:nil];

If I try to call this code 3 or more times then the lag disappears. I understand that when working with iCloud documents there are synchronous operations that takes time but I didn't find a way to kind of preload that so by the time I present the view controller it happens instantly. I even tried to instantiate the view controllers much before presenting them, but the initialisation doesn't seam to be the bottleneck.

Did anyone experienced the same problem?

1

There are 1 answers

0
cescofry On

It turns out the problem was related to using appearance on a UISegmentController with a custom Font. It may be related to other UIKit controls as well.

Here the way I reproduced it on a clean project:

    NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"Pacifico" size:16]};
[[UISegmentedControl appearance] setTitleTextAttributes:attributes forState:UIControlStateNormal];

I filed a radar. Please go and dupe, especially if you find this is affected by other appearance calls.