2017-09-08 58 views
0

我想在我的FAQViewcontroller中重新加載一些數據。所述的tableview被放置在裝有的viewController一個nib文件(視圖),稱爲這種方式:筆尖上的UITableview(視圖)不會重新加載(Objective-C)

FAQViewController *vc = [[FAQViewController alloc] initWithNibName:@"FAQViewController" bundle:nil]; 
      [self presentViewController:vc animated:YES completion:nil]; 

在FAQViewcontroller的viewDidLoad中,所述的tableview正在顯示正確的方式(I看到隔板線和當我改變backgroundColor時,它運行良好)。但目前還沒有信息顯示,所以單元格是空的(如預期的那樣)。

- (void)viewDidLoad { 
[super viewDidLoad]; 

self.tableView.delegate = self; 
self.tableView.dataSource = self; 

[self.tableView registerNib:[UINib nibWithNibName:@"FAQCell" bundle:nil] forCellReuseIdentifier:@"FAQCell"]; 

if (self.faqData == nil || [_faqData count] == 0) { 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){ 
     [[DataModel sharedInstance] getFrequentlyAskedQuestions:^(NSError *error) { 

     }]; 
    }); 
} 
} 

當網絡調用完成,在FAQViewcontroller調用此函數:

- (void)setFaqData:(NSArray *)faqData { 

_faqData = faqData; 
NSLog(@"%@", _faqData); 

dispatch_async(dispatch_get_main_queue(), ^() { 
    [self.tableView reloadData]; 
}); 
} 

但reloadData是無所作爲。沒有調用的數量是多少。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
return _faqData.count; 
} 

我不知道該怎麼辦。從來沒有這樣(通常我在Swift中編寫代碼,也許我在Objective-C中忘記了一些東西)?

有誰知道我在做什麼錯?

非常感謝!

+0

您是否正確設置了表格視圖數據源? –

+0

確保你在Interface Builder中連接了你的表格視圖,並且正如Ratul Sharker指出的那樣,數據源委託方法都是正確實現的。 –

+0

'self.tableView'非''nil'? – Rob

回答

0

你可以嘗試使tableView作爲一個強有力的參考? 類似於:

@property (nonatomic, strong) IBOutlet UITableView *tableView 
+0

我上面試過,但沒有任何改變。但是,當我第三次連接數據源和委託並清理後,突然它就起作用了。我不知道問題到底是什麼,但非常感謝您的幫助! – debbiedowner