[英]How can I view subview with an activity indicator?
我需要查看帶有活動指示器的子視圖。 這是我的代碼,但未顯示子視圖:
@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
可能有多種原因,但是從您發送的代碼中仍不清楚這是哪一種。
首先,您不應該在代碼中使用sleep(4)-它弄亂了iOS運行的應用程序引擎以支持用戶輸入,屏幕刷新等。您的代碼可以輕松更改為:
[self performSelector:@selector(removeMyProgressView:) withObject:progressViewController.view afterDelay:4.0];
並在removeMyProgressView:函數中具有removeFromSuperview 。
另外,以下代碼是有問題的:
progressViewController = [[ProgressViewController alloc] initWithNibName:@"ProgressViewController" bundle:nil];
它應該是
self.progressViewController = [[ProgressViewController alloc] initWithNibName:@"ProgressViewController" bundle:nil];
否則,您不會調用setter函數(@sythesized屬性),並且不會保留該對象。 可能是它已發布,因此您看不到它。
如果這都不對,我們將繼續努力:)
祝好運!
奧德
-viewDidLoad方法中的所有內容都在一個運行循環中發生。 這意味着您可以添加和刪除活動指示器,而不會給系統提供實際繪制它的機會。 4秒鍾的睡眠無濟於事。 這些只會使運行循環花費更長的時間才能完成。
在- (void)viewDidLoad
方法中的任何內容之前調用[super viewDidLoad]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.