Я пытаюсь добавить пользовательское представление в UITableView, созданный с помощью кода из UITableViewController. Это представление HUD-окна с сообщением ( MBProgressHUD )
Итак, у меня есть метод reload (), вызываемый из переопределенного метода initWithStyle () и кнопки обновления таблицы:
- (void) reload {
HUD = [[MBProgressHUD alloc] initWithView:self.tableView];
[self.view addSubview:HUD];
HUD.delegate = self;
HUD.labelText = @"Downloading";
[HUD showWhileExecuting:@selector(reloadWithHUD) onTarget:self withObject:nil animated:YES];
}
В первый раз HUD появляется за строкой таблицы. После загрузки, когда я нажимаю кнопку перезагрузки, вид отображается как ожидалось. Метод initWithStyle () (для ясности удален некоторый код):
- (id)initWithStyle:(UITableViewStyle)style {
self = [super initWithStyle:style];
if (self) {
// Custom initialization.
self.title = NSLocalizedString...
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle ... action:@selector(reload)];
self.navigationItem.rightBarButtonItem = button;
[button autorelease];
[self reload];
}
return self;
}
Я попытался изменить представление HUD с помощью простой UILabel, с тем же результатом.
Я также изменил код для вызова reload () из viewDidLoad (), но тоже не работает. Как я могу решить эту проблему? Большое спасибо.
РЕДАКТИРОВАТЬ: Чтобы прояснить это, вот возможное решение этой проблемы. Большое спасибо Биллу Браски за помощь:
HUD = [[MBProgressHUD alloc] initWithView:self.view];
[[[UIApplication sharedApplication] keyWindow] addSubview:HUD];