#uikit #uipopovercontroller
#uikit #uipopovercontroller — контроллер
Вопрос:
У меня есть UIPopoverViewController, который правильно отображает пользовательский UIViewController. Когда я нажимаю кнопку, у меня выполняется действие, и в результате я добавляю представление в иерархию представлений представления UIViewController.
Проблема в том, что это происходит очень медленно, и для появления представления требуется несколько секунд. Я не делаю ничего необычного с кодом моего UIViewController.
- (void)showAccountChooser {
self.twitterAccountPicker = [TwitterAccountPicker new];
[self.view addSubview:self.twitterAccountPicker.view];
self.twitterAccountPicker.view.frame = self.view.bounds;
self.twitterAccountPicker.view.transform = CGAffineTransformMakeScale(.05, .05);
[UIView animateWithDuration:0.5f animations:^{
self.twitterAccountPicker.view.transform = CGAffineTransformMakeScale(1, 1);
} completion:^(BOOL finished) {
//[self.twitterAccountPicker viewDidAppear:YES];
}];
}
Добавляемый мной UIViewController тривиален и не требует тяжелой обработки в viewDidLoad или viewWill / didAppear. Я установил точки останова и убедился, что он не делает ничего плохого.
Кто-нибудь еще заметил это при добавлении представлений?
Ответ №1:
После установки точек останова, пытаясь отладить это, я понял, что мой showAccountChooser
метод вызывался из блочного вызова, который происходил в фоновом потоке. Перемещение этого вызова в основной поток решило проблему.