我有一个基于标签栏的应用程序,带有3个标签(视图)。我将如何在应用程序委托或加载的第一个选项卡中,在后台加载其他2个视图的全部内容?
现在我在每个视图中都有一个webView。我的部分问题是它们被加载到viewDidLoad中但导致等待空白屏幕
由于
答案 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后,视图永远不会为零 - 这是一个相当严重的分配错误。