2010-05-06 90 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