UITableView параметры не наследуются от IB - PullRequest
0 голосов
/ 12 марта 2012

У меня есть приложение TabBar, встроенное в Xcode 4.2.1 с использованием раскадровок.Проблема в том, что 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 голосов
/ 15 марта 2012

ИСПРАВЛЕНО: расширенный класс ViewController.Я изменил его, чтобы расширить UITableViewController, и все стало на свои места.Метод viewDidLoad () теперь значительно упрощен, потому что многие вещи, которые я настраивал вручную, автоматически обрабатываются классом UITableViewController.Теперь я могу изменить параметры UITableView в IB, как и ожидалось.

- (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;
}
...