我是iphone开发新手。我创建了一个应用程序,在第一个标签栏视图中加载一个网页,在第二个标签栏视图中,它解析一个xml文件并在表格视图中显示内容。当我点击第二个标签栏时,只有在解析完成后才能看到标签栏视图,直到解析时间标签栏显示为未选定状态。我想在解析完成时显示带活动指示器的标签栏视图。如何我做到了,请帮助我。谢谢。如何在iphone中解析完成时显示标签栏视图?
回答
没有额外的信息很难说,但我想你解析viewDidLoad()
或loadView(
内的XML文件)。但是,解析可能实际上需要时间,并且您正在阻止负责更新UI的主线程。这就是为什么只有在解析完成后才能看到标签栏的原因。
要解决这种情况,您需要推迟显示数据的表视图,显示活动指示符以告诉用户正在发生的事情,并启动后台线程来负责解析XML文件。处理线程XML文件一旦完成,然后停止活动指示器并使用解析的数据设置您的表视图。
你可以做到这一点很容易利用现有的API(detachNewThreadSelector:toTarget:withObject:
和performSelectorOnMainThread:withObject:waitUntilDone:
等),然而,你可能要考虑采取的MBProgressHUD提供正是你需要包裹在一个非常容易使用类的功能优势。
我假定你知道或将能够弄清楚如何让活动指示器工作。
您可以使用NSXMLparser委托方法来分析xml数据。您可以收集模型对象中的xml数据,这些数据是您在类中解析xml(即简单数组)的属性。然后,从希望收到完成解析的通知的角度来看,您可以使用键值观察(KVO)将其注册为关键路径的观察者。一旦这些属性的值发生变化,您的视图(或中间类)将被发送一条消息,然后它可以用来更新显示。
只要发送消息的类是适用于这些属性的键值编码(KVC),这些消息就会发送给注册的观察者。在大多数情况下,通过属性使您的ivars可用。
添加一个观察者:
- (void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context
通知的变化:
- (void)didChangeValueForKey:(NSString *)key
退房键值观察文档:
我想你应该必须在指定的时间内使用NSTimer类。
执行解析数据的方法(即,GetXMLData --user定义的方法),通过它的方法,
NSTimer *currentTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(GetXMLData:) userInfo:nil repeats:NO];
,并开始活动指示灯使用
[activityIndicator startAnimating];
停在它下面的方法
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
.
.
.
[activityIndicator stopAnimating];
}
我希望你undrstand我是什么告诉... 做评论,如果需要任何帮助...
- 不做在MainThread分析,分离新线程做解析([NSThread detachNewThreadSelector:toTarget:withObject:])
- 解析后(parserDidEndDocument:)使用performSelectorOnMainThread刷新的tableView 。
- 1. iPhone:如何隐藏标签栏以显示全屏视图
- 2. 如何显示标签栏像iPhone
- 3. 如何在iphone中解析xml标签
- 4. 如何显示键盘上的标签栏时出现在iphone
- 5. 如何在渲染EmberJS视图时解析XFBML标签?
- 6. 如何从上方显示UIActionSheet视图标签栏控制器?
- 7. iPhone:视图控制器的标签栏
- 8. 问题与显示复合视图的标签栏视图
- 9. 如何忽略iphone标签栏按下,直到标签已完成加载?
- 10. 如何在标签栏中突出显示标签
- 11. Iphone标签栏图标
- 12. 在标签页视图中显示viewController
- 13. UISearchBar显示在根视图中,但不显示在标签栏上的任何其他视图
- 14. 标签栏图标不会显示
- 15. iOS:旧的标签栏图标显示
- 16. 标签栏不显示图标?
- 17. TKCalendarMonthTableViewController在标签栏视图
- 18. 如何在Xamarin.Forms中的标签视图顶部显示图像?
- 19. iPhone视图层次结构问题:如何在标签栏上绘制视图?
- 20. 如何更改标签栏图标的突出显示颜色? (iPhone/iPad)
- 21. 如何在代码中设置iPhone标签栏图标?
- 22. iphone工具栏显示视图
- 23. 显示标签:如何使用显示标签显示图像
- 24. 从分离视图控制器的主显示在标签栏
- 25. 故事板 - 如何在用户点击标签栏时以模态方式显示标签视图?
- 26. 如何显示导航栏时,标签栏项目点击
- 27. 显示标签和自动完成值
- 28. 如何解析网站文本并在视图中显示
- 29. Iphone:标签文本udates的值,但不显示在视图
- 30. 如何显示键盘出现在标签触摸在桌面视图(iphone)