我有一个使用故事板在Xcode 4.2.1中构建的TabBar应用程序。问题是UITableView没有反映我在IB中所做的更改。例如:当我使用IB更改背景颜色,滚动条可见性,分隔符颜色时,UITableView上没有可见效果。
但是,如果我以编程方式设置这些参数,它们的效果很好。我错过了什么?下面是一些代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// get a pointer to our delegate. This is where the data will be stored
// which gets passed between the Views (e.g. Favorites)
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
myTableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] style:UITableViewStylePlain];
myTableView.dataSource = self;
myTableView.delegate = self;
// myTableView.backgroundColor=[UIColor blackColor];
// this will suppress the separator lines between empty rows.
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
myTableView.tableFooterView = view;
self.view = myTableView;
}
答案 0 :(得分:0)
FIXED:上面的类扩展了ViewController。我改变它以扩展UITableViewController,一切都落到了位置。 viewDidLoad()方法现在大大简化了,因为我手动配置的许多东西都是由UITableViewController类自动处理的。我现在可以按预期更改IB中的UITableView参数。
- (void)viewDidLoad
{
// during construction, call the super class's method FIRST.
[super viewDidLoad];
// get a pointer to our delegate. This is where the data will be stored
// which gets passed between the Views (e.g. Favorites)
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
// this will suppress the separator lines between empty rows.
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
self.tableView.tableFooterView = view;
}