English 中文(简体)
问题5 如何“谨慎”地为制片的控制器开标?
原标题:iOS5 how to "lazily" initialize controllers for the tab bar?

我拥有一名塔巴控制员,最多有9名控制员,每人都有一名导航控制员。 目前,我对每位代表都表示不安,并在各自职权范围内。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{...}

这使我很需要一些时间,首先开始。 我现在要减少最初装满催.的时间。

www.un.org/Depts/DGACM/index_spanish.htm 是否有办法“谨慎”地看待控制器。 他们先被选定参加禁忌吗?

审视SOS5故事片是否有助于我处理这一问题?

谢谢!

最佳回答

如何界定你的控制人员为zy控制器?

我指的是,如果由于9名观点控制员的初始化而需要一定时间才开始,那么这就必须与控制人员在一定时间实际做些什么有关。 因此,你可以在两个步骤中使控制者感到 la笑:一个步骤是,当你把所有控制者都添加到表形控制器上;两个步骤是,在你选择一个具体表格时,相应的控制员先入门。

我认为,这是最清洁的办法。

否则,我将直接使用<条码>TabBar,以在你自己的表格中加以管理。

作为最后一种选择,我将根据某些逻辑,在适当的时候,通过打电话setViewControllers:animated:,尝试并修改表格控制器的内容。 举例来说,您可以先把刺铁控制器放在<编码>应用:didFinishLaunching WithOptions:上,然后在稍后时间添加其余部分。

但是,我的实际建议是使构成部分控制员 la......

EDIT: after reading your question in the comment...

if you would give a try to lazy initialization of your controllers, what I mean is following:

  1. you will initialize your controllers (or UIKit will when loading the nib) by calling [[... alloc] init...]; this is not changing;

  2. init” 方法将控制器引入违约状态,如确定特性和ivar值,而且不会更加复杂;

  3. 在控制者表示意见之前,你通过采用某种具体方法完成了初始工作;这将通过“放弃许多代表团”部分进行,我认为这是初步化的一个漫长部分。

如果谈论“lazy initialization”造成部件的逻辑初始化与init的内容之间模糊不清。

至于第3点,你有几项选择,可以选择何时完成初始工作。

On possibility is when the controller is about to be displayed. In this case, either you define -tabBarController:didSelectViewController: in the tab bar controller delegate, or you use viewWillAppear. This will give you the laziest initialization of all, but it could be add some delay on the exact moment when you select the tab before the view appears.

最好还是使用<代码>viewDidLoad,这将给你一种不太令人怀疑的初始化;all>/em>的你的控制员在你不控制(当然,在显示观点之前)的某个时候会发生,从而可能拖延事情,但不会出现在<编码>应用DidFinishLoading<<>/code>上,并且会更加方便,因为这会受到主机的控制。 当然,第一个选择是尝试。 另见。 UIViewController reference

最后,关于单独线索的说明。 牢记并非所有安全使用<代码>UIKit的条码”,从一条单独的条码看,都是谨慎的。

问题回答

Felt喜欢在这个问题上加一 quick。 正如其他人所指出的,“冻结”的初始化和装载过程已经是“拉齐”。 真正的问题是,在你们的初创中,你做了些什么? 即便是装满观点也不一定需要很长的时间,因为你不想让用户在意见改变之前坐下来。 我建议如下:

  1. 仅凭实事求是。 独一无二的目的是使独立数据成为初步和随时可得的数据。 你不应在此提出任何意见。

  2. 在<代码>中,或viewDidLoad生成了您的所有观点/意见。

  3. Only load data when you need it. If you need it in init, load it there. If you can wait until the views are loaded, do it in viewDidLoad. If loading data takes any significant time, load it in the background.

In your implementation of UIViewController create all your Views in the method

- (void)viewDidLoad

避免在您的本方方法中形成看法(或更糟的是获取数据)。

An UITabBarController or an UINavigationController will call the viewDidLoad by default lazy i.e. right before the user sees it.





相关问题
Code sign Error

I have created a new iPhone application.I have two mach machines. I have created the certificate for running application in iPhone in one mac. Can I use the other mac for running the application in ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

将音频Clips从Peter改为服务器

我不禁要问,那里是否有任何实例表明从Peit向服务器发送音响。 I m不关心电话或SIP风格的解决办法,只是一个简单的袖珍流程......

• 如何将搜查线重新定位?

我正试图把图像放在搜索条左边。 但是,问题始于这里,搜索条线不能重新布署。