2010-05-06 104 views
1

我想添加一个«loader-view»到我的应用程序,它显示了一个微调,而做东西。iPhone从笔尖加载视图只能工作一次

这工作正常第一次,但它不再工作。

这里是我做的:

我有一个的viewController的微调(spinnerViewController)和我在IB(spinner.xib)制成的笔尖文件。

我加载笔尖在viewDidLoad中事件:

spinnerView = [[spinnerViewController alloc] initWithNibName:@"spinner" bundle:nil]; 

[spinnerView保留];

spinnerView在.H文件中声明(spinnerViewController * spinnerView;)

接下来,我告诉微调视图:

[self.view addSubview:spinnerView.view]; 
[self.view bringSubviewToFront:spinnerView.view]; 

的正常工作......

而且现在麻烦开始了。无论我做什么,我都无法再显示微调视图。我试着只是隐藏它(self.view sendSubViewToBack:spinnerView.view)它为隐藏起作用,但当我尝试再次把它带到前面(self.view bringSubViewToFront:spinnerView.view)它不起作用(self.view sendSubViewToBack:spinnerView.view)它不起作用。

我还试图消除旋转视图并没有成功再次添加它(spinnerViewController内:[self.view removeFromSuperview],并再次显示[self.view addSubview ...)

[编辑]

我改变了整个设置一点,只是让微调视图在IB的子视图 - 再次隐藏作品,但再次显示失败。 我发现:在bringSubViewToFront命令后,我打电话给一些Web服务来获取一些数据。当我将下面的代码注释掉并显示spinnerView时,它可以工作。所以现在我试图找出如何确定微调视图何时出现,然后继续代码 - 但自然,这是行不通的(还):)

任何想法我做错了什么??? ;)

回答

1

问题解决了。

本页面给出了答案:http://urenjoy.blogspot.com/2009/05/uiactivityindicatorview.html

显然,更新在一个单独的线程的情况发生,因为网络的东西阻止当前之一,因此认为没有出现。

[NSThread detachNewThreadSelector:@selector(doWork) toTarget:self withObject:nil]; 
- (void) doWork { 

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

.....Time Consuming Code here ..... 

[pool release]; 

} 
0

我可能是不完全对你的问题,但一般以在屏幕上显示一个微调创建视图控制器类是一个巨大的矫枉过正...只是试图发现在你背后做什么逻辑:你创建一个viewcontroller,但你从来不使用它,你使用视图。

总之

所以我相信,你只需要一个UIView(在UIViewController中的视图属性) 你为什么不试着这么做:

... in your class interface... 

UIActivityIndicator* activity; 

... when the activity needs to happen ... 

activity = [[UIActivityIndicator alloc] initWithActivityIndicatorStyle: .... 
[activity startAnimating]; 
[self.view addSubview:activity]; 
[activity release] 

... when the activity is finished 

[activity removeFromSuperview]; //this will also decrease the retain count 
+0

嗨伊灿 是 - 你是对的,这是一个矫枉过正的问题,我在问了这个问题后才意识到。尽管如此,我仍然在IB创建微调器,因为我觉得这种方式非常方便。但是ViewController现在不在了,我只是加载笔尖并显示它。 尽管感谢提示,但我仍然试图让我的脑袋绕过Objective-C和SDK ......所以一切都有所帮助:) – 2010-05-08 13:28:59