在我的UIViewController
名爲MainViewController
,我有一個名爲SubViewController
的另一個UIViewController
的引用。它的定義如下:添加'UIView`作爲子視圖最初是緩慢的
@class SubViewController;
@interface MainViewController : UIViewController <UIScrollViewDelegate> {
SubViewController * _subViewController;
}
在我MainViewController
的initWithNibName:bundle:
方法,我初始化我SubViewController
如下:
#pragma mark - Init
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; {
if((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])){
_subViewController = [[SubViewController alloc] initWithNibName:@"SubViewController" bundle:nil[;
// Forces the view to load, in an attempt to speed up the adding of the subview.
UIView * view = _subViewController.view;
view.alpha = 1.0f;
}
return self;
}
的SubViewController
的viewDidLoad
方法不會被調用,一切似乎是加載,但是當我加入SubViewController
作爲一個子視圖:
- (IBAction)showButtonPressed:(UIButton *)aButton; {
[self.view addSubview:_subViewController.view];
}
的應用程序放慢幾秒鐘,然後添加子視圖,一切都很好。奇怪的是,當我刪除子視圖,並嘗試再次重新添加它,有沒有延遲!
我認爲這個問題是一個加載一個,但我無法找到如何解決這個問題的任何文件。
誰能解釋是什麼原因造成這種慢下來?謝謝!
幾秒鐘是** **真的很長一段時間。您可能希望使用工具來確定發生了什麼,而不是專門查看加載視圖。 –
我同意,它*真的**很長時間。樂器告訴我沒有什麼可悲的。有什麼特別的我應該尋找? – msgambel
在儀器上運行時間分析器,啓動應用程序,您應該看到一個尖峯。停止它,然後在下面的區域中,繼續點擊左邊最高毫秒的事物的三角形。最終你應該可以理解。 – WolfLink