Does ABPeoplePickerNavigationController not work?

When using ABPeoplePickerNavigationController it takes time (~ 0.5 sec) to load and display a control that is slower than the usual reaction time of other pop-ups.

I came up with a solution by setting the controller as a variable and accessing this preloaded object via:

 [self presentViewController:self.peoplePicker animated:YES completion:nil]; 

Just out of curiosity, is there any other way to run the collector without preloading?

+6
source share
1 answer

The same thing, I do not have an answer to its solution, and I think that it may be an iOS 8 error ( UPDATE : yes, this is it, Apple has confirmed it).

In my tests on iOS 7.x, the submission time of ABPeoplePicker is less than 0.2 s.

The problem only appears on iOS 8.x and only the first time you present ABPeoplePicker. The ABPeoplePicker view takes about 3 seconds in my application and about 1.5 seconds in the sample application, which only makes the ABPeoplePicker presentation by pressing a button. I tested it both on the simulator and on a device with ~ 20 contacts.

Preloading the instance does not significantly change the presentation time, as I expected. I also tried to get the presentation downstream and set the animation to NO, but it is still slow on iOS 8.

The time profiler does not help me because I do not see an unexpected long calculation time.

While we are waiting for the proposed bug fix, I think the best workarounds are to show an activity progress indicator when loading ABPeoplePicker or implement our own ABPeoplePicker.

I implemented my own, you can find it on GitHub: VeeContactPicker and, of course, use it! 😉

NEWS FROM APPLE:

The Apple team responded to my error report:

Apple Developer Relations 16-Jun-2015 00:36 AM

We believe this issue was addressed in the latest beta version of iOS 9. This is a preliminary update to iOS 9. For detailed installation instructions, see the release notes. Please check this release. If you still have problems, provide any relevant magazines or information that may help us investigate. *

IOS 9 update

In iOS 9, ABFramework is deprecated for the new object-oriented contact structure that ships with the new collector [see CNContactPicker ]! Unfortunately, it looks like the problem has not been resolved, the logic has been updated, but the ViewController is still the same as iOS 8. So CNContactPicker still loads and displays the control very slowly ...

I reported an Apple error while waiting for the news ...

+4
source

Source: https://habr.com/ru/post/987659/


All Articles