Как я могу показать пустой вид вместо UITableView? - PullRequest
1 голос
/ 09 августа 2011

У меня есть UITableViewController.Когда определенная BOOL установлена, я хочу показать другой вид вместо UITableView.Как я могу это сделать?Мне нужно иметь возможность вернуть UITableView.

Ответы [ 5 ]

9 голосов
/ 09 августа 2011

Я реализовал следующий метод в своем подклассе контроллера табличного представления для перезагрузки его фона.

- (void)reloadBackground
{

        if(myBool)
        {

    //load the view to be displayed from a nib        
    NSArray* nibs = [[NSBundle mainBundle] loadNibNamed:@"EmptyView" owner:self options:nil];
            UIView* emptyView = [nibs objectAtIndex:0];
            self.tableView.backgroundView = emptyView;
            self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        }
        else
        {
            self.tableView.backgroundView = nil;
            self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        }

}

HTH,

Акшай

2 голосов
/ 09 августа 2011

Вместо UITableViewController вы можете поместить два представления в UIViewController:

@interface MyViewController : UIViewController <UITableViewDelegate> {
   UITableView *tableView;
   UIWebView *anotherView;
}

...

if (someBool) {
   tableView.hidden = YES;
   anotherView.hidden = NO;
} else {
   tableView.hidden = NO;
   anotherView.hidden = YES;
}
0 голосов
/ 09 августа 2011

Вместо этого используйте UIView, если UITableViewController .... из файла .h измените UITableViewController на UIViewController Соедините представление с владельцем файлов из xib

, возьмите UITableView в UIView ... возьмите другой UIView дляпустое представление и установите его фоновый цвет как Цвет табличного представления

Если ваш bool, если истина, тогда показывает табличное представление и скрывает пустое Вид еще скрыть табличное представление показывает пустое представление

0 голосов
/ 09 августа 2011

Возможно что-то вроде:

if (myBool == YES) {

 UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
 [self.view addSubview:myView];

}

Теперь, чтобы избавиться от него:

[myView removeFromSuperview];

Конечно, есть много других методов ...

Четный: self.view = myView;

0 голосов
/ 09 августа 2011

Как насчет ..

if(myBOOL == YES) {

   ADifferentViewController * vc = (ADifferentViewController *)[[ADifferentViewController alloc]init];
   [self.navigationController pushViewController:vc animated:NO];
   [vc release];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...