我想設置顯示和解除Singleton中HUD的方法。我用singleton寫這個方法:MBProgressHUD到Singleton
- (void)showHUD
{
activityHud = [[MBProgressHUD alloc] init];
activityHud.delegate = self;
}
但是什麼也沒有發生。對於解僱,我不知道如何寫......任何答案都會非常有幫助。謝謝!
我想設置顯示和解除Singleton中HUD的方法。我用singleton寫這個方法:MBProgressHUD到Singleton
- (void)showHUD
{
activityHud = [[MBProgressHUD alloc] init];
activityHud.delegate = self;
}
但是什麼也沒有發生。對於解僱,我不知道如何寫......任何答案都會非常有幫助。謝謝!
爲什麼不使用靜態方法?我使用它並將其放入我的util類中。
static UIWindow *window;
+ (MBProgressHUD *)showGlobalProgressHUDWithTitle:(NSString *)title {
window = [[[UIApplication sharedApplication] windows] lastObject];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
hud.labelText = title;
return hud;
}
,並隱藏與此:
+ (void)dismissGlobalHUD {
[MBProgressHUD hideHUDForView:window animated:YES];
}
你可以做我想做的。我有一個基地VC類,我所有的viewControllers從子類,並制訂的這些方法:
-(void)showActivityViewForView:(UIView *)view withActivityText:(NSString *)text;
和
-(void)hideActivityView;
實現爲這樣:
-(void)showActivityViewForView:(UIView *)view withActivityText:(NSString *)text;
{
self.viewForActivity = view;
self.activitytext = text;
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showActivityView) userInfo:nil repeats:NO];
}
-(void)showActivityView
{
self.progressView = [MBProgressHUD showHUDAddedTo:self.viewForActivity animated:YES];
self.progressView.opacity = 0.5;
self.progressView.labelText = self.activitytext;
}
-(void)hideActivityView
{
[self.timer invalidate];
[MBProgressHUD hideAllHUDsForView:self.view animated:YES];
}
計時器有這麼如果我所做的網絡活動需要不到一秒的時間才能完成,我根本不會顯示MBProgressHUD
。
讓它在基類中意味着我所有的VC都可以輕鬆訪問這些方法。
這看起來不像是Singleton模式。 – Raptor
因爲這只是單身人士的方法,所以在這裏用這種方法複製/粘貼整個單身人士模式是沒有必要的...... – Stefan
您正在實例化一個對象並設置其委託屬性。顯示它的代碼在哪裏? –