Objective C iOS预加载视图

时间:2012-07-08 08:27:25

标签: objective-c ios xcode uiwebview uitabbarcontroller

我有一个基于标签栏的应用程序,带有3个标签(视图)。我将如何在应用程序委托或加载的第一个选项卡中,在后台加载其他2个视图的全部内容?

现在我在每个视图中都有一个webView。我的部分问题是它们被加载到viewDidLoad中但导致等待空白屏幕

由于

3 个答案:

答案 0 :(得分:9)

答案对我来说并不是那么清楚..所以我在UIViewController中包含3个UITabBarViewController(或它们的子类),强制它们加载视图的方式是调用在添加到UITabbarViewController实例之前,AppDelegate中的每个属性都有-view属性。像这样:

UIViewController * myViewController = [[UIViewController alloc] initWithNibName:@"mynib" bundle:nil];
[myViewController view];//<--here you are forcing the view to be loaded before it will be called from the tabbatviewcontroller

这是一种避免(根本不)你正在经历的行为的方法......在后台加载的概念要复杂得多。

答案 1 :(得分:7)

尝试:

viewController.view.hidden = NO; 

对于任何想要预加载的viewController,它已经分配并初始化了。也就是说,在alloc和initWithNibName:...完成之后。

答案 2 :(得分:4)

我通常使用这样的东西:

if (vc.view == nil)      // force load of view
{
    NSLog(@"%s ***** ERROR: view == nil: %@", __PRETTY_FUNCTION__, vc);
}

注意:在调用vc.view后,视图永远不会为零 - 这是一个相当严重的分配错误。