我在 UITableViewController 的子类中有以下代码。在 iOS 5.1 下它工作正常,但在 iOS 6 下,self.tableView 为零(在模拟器和真实设备上)。我做错了吗?为什么在初始化后没有立即设置视图?
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self)
{
UIView * bck = [[UIView alloc] init];
[bck setBackgroundColor:[UIColor whiteColor]];
self.tableView.backgroundView = bck;
[bck release];
}
return self;
}
编辑:
我已经确定了问题:
我有课
AccountsListViewController_iPad
这是的子类
AccountsListViewController : UITableViewController
AccountsListViewController 在初始化后加载了它的 tableView 和视图(如我所料)。另一方面,AccountsListViewController_iPad 的 view 和 tableView 等于 nil。我已经从 AccountsListViewController_iPad 中删除了所有内容,所以现在看起来如下:
.h
#import <UIKit/UIKit.h>
#import "AccountsListViewController.h"
@interface AccountsListViewController_iPad : AccountsListViewController
@end
.m
#import "AccountsListViewController_iPad.h"
@implementation AccountsListViewController_iPad
@end
它的观点仍然为零。在我看来,它的行为应该与其超类完全相同,但事实并非如此。