Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在UITabBarController选项卡选择之前添加“正在加载”?_Iphone_Cocoa Touch - Fatal编程技术网

Iphone 在UITabBarController选项卡选择之前添加“正在加载”?

Iphone 在UITabBarController选项卡选择之前添加“正在加载”?,iphone,cocoa-touch,Iphone,Cocoa Touch,我的UITabBarController的一个选项卡需要一些时间才能显示出来 在viewcontroler完成其工作之前,显示正在加载的视图的最佳方式是什么 我尝试在选项卡的viewController的viewDidLoad方法中设置一个正在加载的视图,然后在ViewDidDisplay中执行该工作,设置一个标志,以便下次通过ViewDidDisplay不再执行该工作 但是,我从来没有看到现在正在加载的视图。。。必须进行一些优化-在TabBarControllerDelegate didSel

我的UITabBarController的一个选项卡需要一些时间才能显示出来

在viewcontroler完成其工作之前,显示正在加载的视图的最佳方式是什么

我尝试在选项卡的viewController的viewDidLoad方法中设置一个正在加载的视图,然后在ViewDidDisplay中执行该工作,设置一个标志,以便下次通过ViewDidDisplay不再执行该工作

但是,我从来没有看到现在正在加载的视图。。。必须进行一些优化-在TabBarControllerDelegate didSelectViewController之前调用viewcontroller的ViewDidDisplay

是否存在允许在显示viewcontroller之前显示占位符视图的UITabBarController机制

有什么想法吗

多谢各位-
Matt

我可能错了,但可能您的问题是,在ViewDidDisplay中执行耗时的工作会阻塞主事件线程,因此在工作完成之前视图不会更新。也就是说,您设置了“现在加载”视图将显示,但您从未看到它,因为在ViewDidDisplay完成时,它已经完成了繁重的工作。

我可能错了,但您的问题可能是,在ViewDidDisplay中执行耗时的工作,您正在阻止主事件线程,以便在工作完成之前不会更新视图。也就是说,您设置的“现在加载”视图将显示,但您从未看到它,因为在ViewDidDisplay完成时,它已经完成了繁重的工作。

这里使用的技术是:

在您的应用程序中显示加载视图 控制器的视图将出现:或 viewDidLoad:方法 然后,生成一个新线程来执行 实际装载或任何时间 你正在做的消费过程 完成后,将消息发送到 使用委托的控制器 模式,例如 加载完成 最后,删除加载视图并 让用户继续 这样做会使应用程序界面仍然可用,即使特定的视图控制器很忙


没有内置方法可以完成此操作,您必须自己编写代码。

这里使用的技术是:

在您的应用程序中显示加载视图 控制器的视图将出现:或 viewDidLoad:方法 然后,生成一个新线程来执行 实际装载或任何时间 你正在做的消费过程 完成后,将消息发送到 使用委托的控制器 模式,例如 加载完成 最后,删除加载视图并 让用户继续 这样做会使应用程序界面仍然可用,即使特定的视图控制器很忙


没有内置的方法可以做到这一点,您必须自己编写。

NSObject的performSelector:withObject:afterDelay:method在这里很有用。显示您的“请等待”警报或视图或其他信息,然后使用performSelector:withObject:afterDelay:开始实际工作。加载将延迟到下一次执行事件循环之后,此时用户界面将被重新绘制。

NSObject的performSelector:withObject:afterDelay:方法在这里可能很有用。显示您的“请等待”警报或视图或其他信息,然后使用performSelector:withObject:afterDelay:开始实际工作。加载将延迟到下一次执行事件循环之后,此时用户界面将被重新绘制