SettingsTableViewController.m 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. //
  2. // SettingsTableViewController.m
  3. // BDVRClientDemo
  4. //
  5. // Created by baidu on 16/3/14.
  6. // Copyright © 2016年 baidu. All rights reserved.
  7. //
  8. #import "BDVRSettings.h"
  9. #import "SettingsTableViewCell.h"
  10. #import "SettingsTableViewController.h"
  11. #import "DetailTableViewController.h"
  12. NSString *settingsIdentifier = @"settingsCell";
  13. @interface SettingsTableViewController ()
  14. @property (nonatomic, strong) NSMutableArray *asrSettings;
  15. @property (nonatomic, strong) NSMutableArray *wakeupSettings;
  16. @property (nonatomic, strong) BDVRSettings *settings;
  17. @property (nonatomic, strong) BDVRSettingsItem *selectedItem;
  18. @end
  19. @implementation SettingsTableViewController
  20. - (void)viewDidLoad {
  21. [super viewDidLoad];
  22. self.asrSettings = [[NSMutableArray alloc] initWithCapacity:1];
  23. self.wakeupSettings = [[NSMutableArray alloc] initWithCapacity:1];
  24. self.settings = [BDVRSettings getInstance];
  25. for (BDVRSettingsItem *item in self.settings.settingsItemArray) {
  26. switch (item.groupType) {
  27. case EBDGroupTypeASR:
  28. [self.asrSettings addObject:item];
  29. break;
  30. case EBDGroupTypeWakeup:
  31. [self.wakeupSettings addObject:item];
  32. break;
  33. default:
  34. break;
  35. }
  36. }
  37. }
  38. - (void)viewDidDisappear:(BOOL)animated
  39. {
  40. [super viewDidDisappear:animated];
  41. [[BDVRSettings getInstance] saveBDVRSettings];
  42. }
  43. #pragma mark - Table view data source
  44. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  45. return 2;
  46. }
  47. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  48. switch (section) {
  49. case 0:
  50. return self.asrSettings.count;
  51. case 1:
  52. return self.wakeupSettings.count;
  53. default:
  54. return 0;
  55. }
  56. }
  57. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  58. UITableViewCell *cell;
  59. BDVRSettingsItem *item;
  60. if (indexPath.section == 0) {
  61. item = [self.asrSettings objectAtIndex:indexPath.row];
  62. } else if (indexPath.section == 1) {
  63. item = [self.wakeupSettings objectAtIndex:indexPath.row];
  64. }
  65. cell = [tableView dequeueReusableCellWithIdentifier:settingsIdentifier forIndexPath:indexPath];
  66. [(SettingsTableViewCell *)cell setSettingsItem:item];
  67. return cell;
  68. }
  69. #pragma mark - Table view delegate
  70. - (nullable NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  71. UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
  72. self.selectedItem = ((SettingsTableViewCell *)cell).settingsItem;
  73. return indexPath;
  74. }
  75. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
  76. [tableView deselectRowAtIndexPath:indexPath animated:YES];
  77. }
  78. #pragma mark - Navigation
  79. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  80. DetailTableViewController *dest = [segue destinationViewController];
  81. dest.settingsItem = self.selectedItem;
  82. }
  83. @end