0

私のUIViewControllernamedMainViewControllerには、別のUIViewControllernamedへの参照がありますSubViewController。次のように定義されています。

@class SubViewController;

@interface MainViewController : UIViewController <UIScrollViewDelegate> {
  SubViewController * _subViewController;
}

myのinitWithNibName:bundle:メソッドでは、次のようMainViewControllerに my を初期化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;
}

viewDidLoadメソッドが呼び出され、すべてがロードされているように見えますが、サブビューとしてSubViewController追加すると:SubViewController

- (IBAction)showButtonPressed:(UIButton *)aButton; {
  [self.view addSubview:_subViewController.view];
}

アプリの速度が数秒間低下した後、サブビューが追加され、すべて問題ありません。奇妙なことに、サブビューを削除して再度追加しようとすると、遅延はありません!

問題は読み込みの問題だと思いますが、これを解決する方法に関するドキュメントが見つかりません。

この速度低下の原因を説明できる人はいますか? ありがとう!

4

2 に答える 2

0

あなたのコードは完全ではありません!!

私はあなたのコードを取り、新しいプロジェクト-ARC-を作成しようとしますが、私にはまったく遅れることなく、Instrumentsを使用して何が起こっているのかを見つけようとします

于 2013-01-06T00:40:32.493 に答える
0

私はそのような問題を抱えたことはありません。2番目のビューをロードしないと、より速く動作すると言っているからです。secondViewController の viewWillAppear と viewDidAppear の内容を確認してください

于 2013-01-06T19:57:26.593 に答える