如何在UITableViewController中显示无数据启动UIView?从tableView添加和删除视图?

时间:2012-07-17 19:41:18

标签: ios xcode uitableview ios5 storyboard

如何在TableView中添加或删除视图?

我想让它在tableView中没有任何内容时提出“无连接”,但是当有数据时,我只想要一个普通的tableView。

我已经检查了很多问题,所有问题都有奇怪的方法可以从单元格中删除视图并在单元格中执行所有操作。 但是,我还发现你可以在Xcode中将UIView拖到tableView中,它会随之滚动。

当您这样做,并且想要摆脱视图时,只需将该视图的隐藏属性设置为true即可。

这里的问题是视图曾经存在的空白区域。我希望它完全消失而不是在那里,但添加/删除子视图对我来说不起作用。我也尝试了很多其他解决方案。

1 个答案:

答案 0 :(得分:1)

我发现您可以简单地将该视图放入Xcode中的存储桶中,但不能放在视图控制器中。 (见图)

Not in the view controller

然后,我发现如果我找到了UIView的出口,我仍然可以使用它。 请注意,我必须设计视图并以编程方式设置适当的大小等,或者在我将其移动到此位置之前在IB中,因为我在IB中看不到它。

然后,在TableViewController类中,我使用ViewWillAppear来检查备份TableView的数组的计数。如果它为零,我将视图(使用Outlet)设置为隐藏或不隐藏。

接下来,我使用了这段代码:

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (noConnectionView.hidden)
    {
        return 0;
    } else {
        return 480;
    }
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if (noConnectionView.hidden)
    {
        return nil;
    } else {
        return noConnectionView;
    }
}

这使得它填充了我的popover,并且因为section方法的单元格数返回了我已经检查的相同计数(如果表为空则为零),这是唯一显示的(没有空单元格)。

当有东西要显示时,每次调用ViewWillAppear(每当删除东西时,我都会再次显示视图)然后tableView摆脱了标题,它的行为就像普通的tableView一样。

这很棒,因为您可以将其与UITableViewController一起使用,或者与导航控制器一起使用。