2016-10-03 7 views
0

と呼ばれていない私は、私のテーブルビューコントローラクラスの以下のメソッドを持っています。のiOS /スウィフト - のUITableView reloadDataが

func reloadInputFields() { 
    dispatch_async(dispatch_get_main_queue()) { 
     self.tableView.beginUpdates() 
     self.tableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: .Automatic) 
     self.tableView.endUpdates() 
    } 
} 

。これはNSNotificationから呼び出されます。ランタイムはこのメソッドをうまく入力し、reloadSectionsを呼び出すように見えます。しかしそれは決して実際にはありません。明らかに私はUIアップデートであるので、ここではメインスレッドで実行していますが、バックグラウンドスレッドでも試してみました。私もreloadSectionsの代わりにtableView.reloadData()と呼んでみましたが、そこには喜びはありません。テーブルビューが確実に存在し、ポインタが正しいことを確認しました。

ブレークポイントはcellForRowAtIndexPathnumberOfSectionsInTableViewheightForRowAtIndexPathnumberOfRowsInSectionなどではありません。テーブルはリロードされていません。私は今、数時間のためにこれで苦労してきた

enter image description here

し、それは完全に私を負かさだ:

マイdelegatedataSourceは、ここで確認されるように正しく設定されています。どんな提案も感謝して受け取ります。

+0

? –

+0

いいえ、それはマイクではなく、その1つだけをリストしておく必要があります。 –

+0

最初にデリゲートをチェックし、テーブルをドラッグアンドドロップする必要はありません。 – seggy

答えて

2

この問題を解決するヒント:通知が発射されたときに

1. Make sure you have IBOutlet connection to the UITableView. 

2. Check delegate and datasource. If necessary, write them programmatically. 

3. Make sure your tableView is populated with data before triggering notification. 

4. Avoid beginUpdates and endUpdates and use only reloadData on main thread. 
0

は、アクティブなテーブルビューですか? テーブルビューコントローラが解放されているかどうかをチェックします(アクティブではありません。画面には表示されていない可能性があります)。

+0

提案をお寄せいただきありがとうございます。テーブルビューのセルの1つのフィールドに表示されます。つまり、tableviewが画面上に表示されています。 –

+0

問題が次のようなものかどうかを確認してください:http://stackoverflow.com/questions/26758101/table-view-reload-sections-crashes – sushma

関連する問題