Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UITableView添加子视图和表行_Iphone_Objective C_Ios_Uitableview - Fatal编程技术网

Iphone UITableView添加子视图和表行

Iphone UITableView添加子视图和表行,iphone,objective-c,ios,uitableview,Iphone,Objective C,Ios,Uitableview,我正在尝试将自定义视图添加到使用UITableViewController中的代码创建的UITableView。此视图是一个带有消息的HUD窗口 因此,我有一个从重写的initWithStyle方法和表的刷新按钮调用的重载方法: - (void) reload { HUD = [[MBProgressHUD alloc] initWithView:self.tableView]; [self.view addSubview:HUD]; HUD.delegate = sel

我正在尝试将自定义视图添加到使用UITableViewController中的代码创建的UITableView。此视图是一个带有消息的HUD窗口

因此,我有一个从重写的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;
}
我尝试过用一个简单的UILabel更改HUD视图,结果是一样的。 我还将代码更改为从viewDidLoad调用reload,但也不起作用。我如何解决这个问题?多谢各位

编辑:为了澄清这一点,这里有一个可能的解决方案。非常感谢比尔·布拉斯基的帮助:

HUD = [[MBProgressHUD alloc] initWithView:self.view];
[[[UIApplication sharedApplication] keyWindow] addSubview:HUD];

下面是我在应用程序中使用几乎相同的应用程序所做的操作

您需要将其添加到主视图窗口,而不是tableView

HUD = [[MBProgressHUD alloc] initWithView:self.view.window];
[self.view.window addSubView:HUD];

我的项目基于IOS 7 这对我有帮助


[self.tableView setSeparatorStyle:uitableviewCellseparatorstyle]

谢谢你,比尔,我也试过了,但是我得到了同样的结果。我在新的测试版中使用MBProgressHUD时遇到了问题。您是否碰巧使用了新的测试版和/或旧版本的MBProgressHUD?我知道git上有一些更新可以帮助解决问题。如果它与您的代码无关,而是与进度视图本身有关,请进行检查。我查看了我的代码,在我的答案中看到了我的编辑,并让我知道。再次感谢您,比尔。我已经更新到最新的git版本。我已尝试了您的代码,但出现异常,因为self.view.window似乎为零。但是在您的帮助下,我找到了解决方案,使用了以下代码:HUD=[[MBProgressHUD alloc]initWithView:self.view];[[[UIApplication sharedApplication]键窗口]添加子视图:HUD];伟大的这些话在我的观点中起了作用,但不是全部。我会看看你的改变,看看这是否对我的其他观点有帮助。