2013-05-22 43 views
0

我正在設計一個使用表格視圖的一對一聊天界面。這個表格視圖被修改爲在新消息到達時顯示氣泡。在這種情況下,新消息通過推送通知到達。我打電話按照我的功能代碼,通過推送通知接收消息:TableView不重裝

-(void)messageReceived: (NSString *)message{ 
    _message=[message retain]; 
    [tableView reloadData]; 
} 

但似乎這並不重裝我的表視圖。 如果我將reloadData的呼叫置於viewDidAppear函數中,它會重新加載。它同時會很好,如果我把在其返回類型爲IBAction的函數調用reloadData(如:函數綁定按鈕點擊)

可能是什麼原因爲reloadData沒得到通過自定義聲明的函數觸發?

+0

如何通過推送通知調用messageReceived? –

+0

@verbumdei我從我的appDelegate.m文件中調用此方法,我正在處理此代理中的入站通知:'didReceiveRemoteNotification'我從接收到的通知的「aps」標記下的「alert」標記中提取消息(只是像JSON)並將其傳遞給messageReceived函數。 –

+0

什麼是您的數據源的表視圖?你可以發佈你的代碼的表視圖數據源方法,如'numberOfRowsInSection'? –

回答

2

reloaddata方法被調用,但這裏的技巧,你沒有將傳入消息添加到tableview加載的數據源!

1

可能是你不是用泰伯維表視圖委託和數據源

Objective-C的

@interface YourClass : UIViewController <UITextFieldDelegate, UITextViewDelegate> 

yourtableview.delegate = self; 
yourtableview.dataSource = self; 

[tableView reloadData]; 

斯威夫特3

class YourClass: UIViewController , UITableViewDelegate, UITableViewDataSource 
yourtableview.delegate = self 
yourtableview.dataSource = self 

yourtableview.reloadData() 

的另一種方式是連接! Swift和Objective-C。 右鍵單擊Table視圖並拖放代表。

enter image description here