2011-04-26 59 views
0

我需要查看一個活動指標的子視圖。 這是我的代碼,但子視圖不會出現:如何查看具有活動指標的子視圖?

@interface ProgressViewController : UIViewController { 
    IBOutlet UIActivityIndicatorView *myActivityIndicator; 
} 
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *myActivityIndicator; 
@end 

@implementation ProgressViewController 
@synthesize myActivityIndicator; 

- (void)viewDidLoad { 
    [myActivityIndicator startAnimating]; 
    [super viewDidLoad]; 
} 
- (void)viewWillDisappear:(BOOL)animated { 
    [myActivityIndicator stopAnimating]; 
} 
@end 


#import "ProgressViewController.h" 

@interface MyViewController : UIViewController { 
    ProgressViewController *progressViewController; 
} 

@property (nonatomic, retain) ProgressViewController *progressViewController; 
@end 

@implementation MyViewController 

@synthesize progressViewController 

- (void)viewDidLoad 
{ 
    progressViewController = [[ProgressViewController alloc] initWithNibName:@"ProgressViewController" bundle:nil]; 
    [self.view addSubview:progressViewController.view]; 
    sleep(4); 
    [progressViewController.view removeFromSuperview]; 

    [super viewDidLoad]; 
} 
@end 
+0

你有一個XIB連接到這個代碼? – Tim 2011-04-26 15:36:20

回答

2

這可能有幾個原因,它仍然從您發送的代碼,有點不清楚哪些一個是。

首先,你不應該用sleep(4)在你的代碼 - 它攪亂了應用引擎的iOS運行,支持用戶輸入,屏幕刷新等 您的代碼很容易被更改爲:

[self performSelector:@selector(removeMyProgressView:) withObject:progressViewController.view afterDelay:4.0]; 

並且有removeFromSuperview在您的removeMyProgressView:函數。

而且,這行代碼是越野車:

progressViewController = [[ProgressViewController alloc] initWithNibName:@"ProgressViewController" bundle:nil]; 

應該

self.progressViewController = [[ProgressViewController alloc] initWithNibName:@"ProgressViewController" bundle:nil]; 

否則你不調用setter函數(@sythesized屬性),以及對象ISN」保留。它可能是它被釋放的,因此你沒有看到它。

如果這些都不是正確的,我們將繼續在它的衝擊:)

祝你好運!

Oded。

0

呼叫[super viewDidLoad]任何事情之前在- (void)viewDidLoad方法

+0

謝謝,我嘗試過,但同樣的問題! – Dany 2011-04-26 15:13:23

1

-viewDidLoad方法中的所有內容都發生在一個runloop中。這意味着您可以添加和刪除活動指示符,而不會讓系統實際繪製它。 4秒的睡眠沒有幫助。那些只是使runloop花更長的時間完成。

相關問題