Это мой сценарий, У меня есть ViewController1 и Class1 (класс обслуживания).UITableView становится Nil После получения ответа от сервера
Я загружаю таблицуView в nib, устанавливая делегат и источник данных в ViewController1. В viewDidLoad я вызываю функцию networkCall в другом классе (Class1). В Class1 после получения ответа он передаст массив данных ответа функции в ViewController1, где данные должны быть заполнены в виде таблицы.
У меня есть источник данных и делегат в xib. Проблема: Когда я получаю ответ в виде массива в ViewController1, UITableView становится nil, я не могу использовать reloadData, но мой массив содержит список элементов с сервера.
Вот мой код
ViewController1
- (void)viewDidLoad
{
[super viewDidLoad];
ClassA *class = [[ClassA alloc]init];
[class getResponse];
}
//This method is calling from ClassA using delegate
-(void)responseData:(NSArray*)arrayList
{
//arrayList have response data
[tableView reloadData];//here tableView becomes nil.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"array count %d",array.count);//has number of items(for me, its 3).
return array.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"TableView";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = @"dsds";
return cell;
}
Tableview звонит первый раз.
В ViewController1 в интерфейсе, я настройка протоколов
<UITableViewDelegate,UITableViewDataSource>
в '(пустоты) метод responseData' попытаться' yourTableView = [[UITableView Alloc] инициализации]; [yourTableView reloadData]; ' – RomanHouse
. Кажется, вы не устанавливаете свой контроллер представления в качестве делегата для класса ClassA * в свой' - (void) viewDidLoad'. Как именно вы вызываете '- (void) responseData: (NSArray *) arrayList' из' ClassA'? – Vladimir
@Vladimir: id view1 = [[ViewController1 alloc] init]; [view1 responseData: objects]; это то, что я звоню –
Anish