UITableView参数不是从IB继承的

时间:2012-03-12 17:13:26

标签: uitableview interface-builder background-color

我有一个使用故事板在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;
}

1 个答案:

答案 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;
}