2011-04-26 54 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花更长的时间完成。