我有一个基于标签栏的应用程序,带有 3 个标签(视图)。在应用程序委托或加载的第一个选项卡中,我将如何在后台加载其他 2 个视图的全部内容?
现在我在每个有问题的视图中都有一个 webView。我的部分问题是它们被加载到 viewDidLoad 但导致等待空白屏幕
谢谢
我有一个基于标签栏的应用程序,带有 3 个标签(视图)。在应用程序委托或加载的第一个选项卡中,我将如何在后台加载其他 2 个视图的全部内容?
现在我在每个有问题的视图中都有一个 webView。我的部分问题是它们被加载到 viewDidLoad 但导致等待空白屏幕
谢谢
答案对我来说不是那么清楚.. 所以我有 3 个UIViewController
(或它们的子类)包含在一个UITabBarViewController
中,强制它们加载视图的方法是-view
在添加到之前调用 AppDelegate 中每个丰富的属性UITabbarViewController 实例。像这样的东西:
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
这是一种避免(根本不是)您正在经历的行为的方法......在后台加载的概念要复杂得多。
尝试:
viewController.view.hidden = NO;
对于您想要预加载的任何 viewController,它已经分配并初始化了 beeb。也就是说,在 alloc 和 initWithNibName:... 完成之后。
我通常使用这样的东西:
if (vc.view == nil) // force load of view
{
NSLog(@"%s ***** ERROR: view == nil: %@", __PRETTY_FUNCTION__, vc);
}
注意:在调用 vc.view 之后,视图永远不应该为零——这是一个非常严重的分配错误。