UItableview внутри приложения, основанного на представлении - PullRequest
0 голосов
/ 18 сентября 2011

У меня есть приложение на основе представления и UITableview в представлении.Я устанавливаю dataSource, делегат и tableView в «Владелец файла», когда я нажимаю на табличное представление, затем нажимаю на владельца файлов, я устанавливаю tableView в табличное представление, view - в представление, источник данных - в табличное представление и делегируем в табличное представление в выходах.

- (void)viewDidLoad
{
    [super viewDidLoad];
}


- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)videoView {

    return 1;

}

// Customize the number of rows in the table view.

- (NSInteger)videoView:(UITableView *)videoView numberOfRowsInSection:(NSInteger)section {

    return 0;
}

// Customize the appearance of table view cells.

- (UITableViewCell *)videoView:(UITableView *)videoView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [videoView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

    }

    // Set up the cell...
    return cell;

}


- (void)tableView:(UITableView *)videoView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

}


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

когда я запускаю приложение для симулятора, я получаю следующую ошибку "tableView: numberOfRowsInSection:]: нераспознанный селектор, отправленный экземпляру 0x6029710"

У меня возникает ощущение, что для просмотра таблиц требуются разныереализация при использовании в приложении на основе представления, а не на основе приложения навигации.Я был бы очень благодарен, если бы кто-нибудь смог подсказать мне, что нужно сделать, чтобы это правильно отображалось. Спасибо.

Ответы [ 3 ]

2 голосов
/ 18 сентября 2011

Реализация одна и та же, независимо от того, используете ли вы приложение на основе представления или на основе навигации.Это сообщение об ошибке говорит вам, что ваше табличное представление попыталось вызвать tableView:numberOfRowsInSection: в своем источнике данных, но этот источник данных не реализовал метод с таким именем.Конечно, глядя на ваш пример кода, вы реализуете метод, называемый videoView:numberOfRowsInSection: вместо tableView:numberOfRowsInSection:.

0 голосов
/ 18 сентября 2011

Я устанавливаю dataSource, делегат и tableView в «Владелец файла», когда я нажимаю на просмотр таблицы, затем нажимаю на владельца файлов, я устанавливаю tableView на просмотр таблицы, просмотр на просмотр, источник данных на просмотр таблицы и делегирование наПредставление таблицы в торговых точках.

Трудно понять, что вы здесь сделали.Вы устанавливаете источник данных таблицы на само представление таблицы?

при запуске приложения для симулятора я получаю следующую ошибку "tableView: numberOfRowsInSection:]: нераспознанный селектор, отправленный экземпляру 0x6029710"

Какой объект находится по адресу 0x6029710?Это, безусловно, объект, который вы указали в качестве источника данных таблицы, но он не реализует протокол UITableViewDataSource.

У меня такое ощущение, что для табличных представлений требуется другая реализация при использовании в приложении, основанном на представлениях, а неприложение на основе навигации.

Нет никакой разницы между "приложением на основе вида" и "приложением на основе навигации".Существуют шаблоны проектов «на основе просмотра» и «на основе навигации», но это всего лишь две разные отправные точки для вашего приложения.UITableView не волнует, какой вы используете.

0 голосов
/ 18 сентября 2011

Для реализации делегата вы не можете изменить tableView на videoView. Должно быть:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return 0;
}

Вам также нужно исправить другой cellForRowAtIndexPath!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...