2012-06-08 4 views
1

Моя функция [ViewController.tableView reloadData] не работает, хотя я внедрил @class ViewController в .h-файл и импортировал #import "ViewController.h" в .m-файл.iOS: свойство 'tableView' не найдено

Что я делаю неправильно?

--- EDIT ---

Вот мой .h файл:

@class XMLAppDelegate, XMLProductDetailView; 

@interface XMLViewController : UITableViewController <UIScrollViewDelegate, XMLImageDownloaderDelegate> { 

    NSMutableDictionary *imageDownloadsInProgress; 

    XMLAppDelegate *appDelegate; 
    XMLProductDetailView *productDetailView; 
    IBOutlet UISearchBar *searchBar; 
    IBOutlet UITableView *tableView; 
} 

@property (nonatomic, retain) NSMutableDictionary *imageDownloadsInProgress; 
@property (nonatomic, retain) IBOutlet UISearchBar *searchBar; 
@property (nonatomic, retain) IBOutlet UITableView *tableView; 

- (void)imageDidLoad:(NSIndexPath *)indexPath; 

@end 

Но заметьте: когда я включаю IBOutlet UITableView *tableView;, она скрывает переменную экземпляра.

+0

Является ли «tableView» IBOutlet, который вы подключили в IB? – rdelmar

+0

define 'не работает'. Компилятор жалуется? Есть ли какая-то ошибка времени выполнения? Ничего не происходит? – dandan78

+0

, если я это сделаю, Xcode говорит, что он скроет переменную экземпляра tableView (я использую UITableViewCell) – filou

ответ

1

ViewController это имя класса. Вы должны инициализировать переменную экземпляра этого класса

ViewController *vc = [[ViewController alloc] init]; 

задвиньте его на навигационном контроллере (если он присутствует)

vc.myDataForTable = [NSArray .....]; //for example 

[self.navigationController pushViewController:vc animated:YES]; 

релиз ВК, если дуга не используется

[vc release]; 
+0

спасибо NeverBe за ваш вклад. Но мое намерение состоит в том, чтобы перезагрузить мои данные в таблицеView, а не нажимать мой ViewController :) – filou

+0

ОК, вставьте весь код, пожалуйста, запустите ViewController и вызовите [ViewController.tableView reloadData] – NeverBe

+0

Для тех, у кого есть подобные проблемы, этот ответ является основой для который вы должны начать играть со свойством tableView экземпляра ViewController vc. См. Ответ и комментарии @ sosborn для получения дополнительной информации. – erran

4

UITableViewController уже есть свойство с именем tableView. Переименуйте свое свойство в нечто вроде myTableView, и все будет в порядке.

+0

'self.tableView' обращается к этому встроенному представлению таблицы. '[self.tableView reloadData];' должен делать трюк. – erran

+0

@sosborn ok, я попробовал, но произошла такая же ошибка. – filou

+0

@ipwnstuff tableView не находится в том же ViewController: S – filou

Смежные вопросы