0

在我的UIViewController命名MainViewController中,我引用了另一个UIViewController命名SubViewController。定义如下:

@class SubViewController;

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

initWithNibName:bundle:my 的方法中MainViewController,我初始化 mySubViewController如下:

#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

我从来没有遇到过这样的问题。因为您说如果您不加载第二个视图,它的工作速度会更快。检查以查看 secondViewController 的 viewWillAppear 和 viewDidAppear 中的内容

于 2013-01-06T19:57:26.593 回答
0

您的代码不完整!

我尝试使用您的代码并创建新项目 -ARC- 并且它对我来说毫不拖延地尝试使用 Instruments 来查找发生了什么

于 2013-01-06T00:40:32.493 回答