2013-02-19 2 views
0

Я поместил пользовательский UITableViewController в UIAlertView. Я заполнил таблицу, но контент не отображается.Содержимое UITableView не отображается в UIAlertView

- (void)addC { // <== This is get called first 
    //Create alertView 
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"" message:@"" delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil]; 

    //PopUpTableViewController is a subclass of UITableViewController 
    PopUpTableViewController *popUpViewController = [[PopUpTableViewController alloc] initWithStyle:UITableViewStylePlain]; 
    // .. 
    popUpViewController.array = ...; 
    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(10, 8, 300, MIN(8*44, categoricalVariables.count*44)) style:UITableViewStylePlain]; 
    popUpViewController.tableView = tableView; 
    tableView.delegate = popUpViewController; 
    tableView.dataSource = popUpViewController; 
    popUpViewController.tableView.tag = 1; 

    [alertView addSubview:popUpViewController.tableView]; 

    //Show alertView 
    [alertView show]; 
} 

- (void)willPresentAlertView:(UIAlertView *)alertView { 
// This method is an UIAlertViewDelegate method. 
// I set here the sizes of alertView and tableView 
    UITableView *tableView = (UITableView *)[alertView viewWithTag:1]; 
    CGRect r0 = tableView.frame; 
    r0.size.width = alertView.frame.size.width - 20; 
    tableView.frame = r0; 

    CGRect r = alertView.frame; 
    r.size.height = tableView.frame.size.height + 24; 
    alertView.frame = r;  
} 
+0

Вы пытались установить сообщение alertview на что-то вроде @ "\ n \ n \ n \ n"? Я повторяю проект, где это помогло мне – pmk

+0

Я пробовал только сейчас, ничего, таблица по-прежнему пуста. –

ответ

0

Это гораздо лучший подход к использованию UIActionSheet, чтобы вложить UITableView в UIAlertView.

0

Попробуйте перезагрузить TableView в willPresentAlertView Кстати, если PopUpTableViewController является подклассом UITableViewController, я думаю, нет необходимости устанавливать TableView и его делегат и источник данных снова. Поскольку все они будут автоматически установлены при выделении и инициализации.

Смежные вопросы