iPhone xcode - 带标签栏控制器和多表视图控制器的活动指示器

时间:2010-04-20 09:34:16

标签: iphone ios xcode uinavigationbar activity-indicator

我找了一个教程,似乎无法在表格视图导航栏中找到一个活动指示器。在我的mainWindow.xib中,我有一个带有4个Tabs控制器的Tab Bar Controller,每个控制器都包含一个表视图。每个使用Google托管的框架加载JSON Feed。

在我的一个View Controller中,我可以使用以下命令向导航栏添加活动指示器:

UIActivityIndicatorView *activityIndcator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0,0,20,20)];
[activityIndcator startAnimating];
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndcator];
self.navigationItem.rightBarButtonItem = activityItem;

然而,可以使用以下方式将其关闭:

self.navigationItem.rightBarButtonItem.enabled = FALSE;

但如果我把它放在我的viewDidLoad事件中,它会一直显示。我只想在表视图中选择一行时显示它。所以我在加载Feed后将它添加到didSelectRowAtIndexPath的顶部和停止行。它显示但需要一两秒钟,只有大约半秒钟的节目。

是一个在didSelectRowAtIndexPath事件之前触发事件的事件吗?如果不是实现这种功能的标准menthord是什么?

2 个答案:

答案 0 :(得分:1)

希望这个link帮助你。这解释了显示用于解析rss feed的动作的活动指示器。

一切顺利。

答案 1 :(得分:1)

在.h文件中

 @property (nonatomic,retain) UIActivityIndicatorView *spinner;

在.m文件中, @synthesize微调器; //也在dealloc中发布

在viewDidLoad中,执行以下操作:

UIActivityIndicatorView *activityIndcator = [[UIActivityIndicatorView alloc]    
       initWithFrame:CGRectMake(0,0,20,20)];
self.spinner = activityIndicator;
spinner.hidesWhenStopped = YES; // this is the default, but never hurts to be sure
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:spinner];
self.navigationItem.rightBarButtonItem = activityItem;

在didSelectRowAtIndexPath中,执行以下操作:

 [self.spinner startAnimating];

完成Feed后,请执行以下操作:

 [self.spinner stopAnimating];