如何在UITableView的位置显示空视图?

时间:2011-08-09 06:20:20

标签: iphone objective-c cocoa-touch uitableview uiview

我有一个UITableViewController。设置某个BOOL时,我想显示另一个视图而不是UITableView。我怎样才能做到这一点?我需要能够将UITableView带回来。

5 个答案:

答案 0 :(得分:9)

我在Table视图控制器子类中实现了以下方法来重新加载其背景。

- (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,

阿克沙伊

答案 1 :(得分:2)

您可以在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;
}

答案 2 :(得分:0)

怎么样..

if(myBOOL == YES) {

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

}

答案 3 :(得分:0)

可能是这样的:

if (myBool == YES) {

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

}

现在摆脱它:

[myView removeFromSuperview];

当然还有很多其他方法......

甚至:self.view = myView;

答案 4 :(得分:0)

  

如果来自.h文件的UITableViewController ....更改,请使用UIView   UITableViewController到UIViewController将视图连接到文件所有者   来自xib

     

在UIView中获取UITableView ...以另一个UIView获取空白视图   并将其背景颜色设置为Tableview颜色

     

如果你的bool如果是真的       然后显示tableview       并隐藏空白查看其他        隐藏tableview        显示空白视图