我有一个正确显示自定义UIViewController的UIPopoverViewController。当我单击一个按钮时,我有一个动作运行,因此我将视图添加到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中没有繁重的处理。我设置了断点并验证它没有做任何坏。
其他人在添加视图时会注意到这一点吗?
答案 0 :(得分:1)
设置了试图调试它的断点之后,我意识到我的showAccountChooser
方法是从块调用中调用的,这是在后台线程上发生的。将此调用移至主线程解决了该问题。