Обновление табличного представления до родительского представления после выбора дочернего элемента с использованием данных перезагрузки - PullRequest
0 голосов
/ 15 октября 2010

У меня есть UITableView, который использует JSON для получения новых данных из AppDelegate. Он сохраняет данные и затем извлекается в этот класс табличного представления из AppDelegate.data3. После добавления записи в базу данных mysql запускаю метод Delegate, который обновляет данные.

Однако [self.tableview reLoadData]; нарушает возможность детализации таблицы. Если я выбираю строку, она выталкивает дочернее представление на доли секунды и обновляет экран родительскими строками. Если я достану [self.tableview reLoadData]; Родитель подталкивает ребенка, но я не получаю обновленный экран с новыми данными.

Есть идеи?

-(void) loadData3;{

    //Initialize table data source  
    MyAppDelegate *AppDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    self.tableDataSource3 = [AppDelegate.data3 objectForKey:@"Rows"];

}
  - (void)viewDidLoad {
    [super viewDidLoad];
    if(CurrentLevel3 == 0) {
        self.navigationItem.title = @"Parent Table";
     }
    else 
        self.navigationItem.title = CurrentTitle3;  
     }
 }
- (void)viewDidAppear:(BOOL)animated {
        [self loadData3];
        [self.tableview reloadData];
            [super viewDidAppear:animated];
        }

1 Ответ

0 голосов
/ 15 октября 2010

Есть несколько вопросов. Непонятно, что вы пытаетесь сделать.

Вы задаете для self.tableDataSource3 значение tempArray, а затем для него устанавливается значение [AppDelegate.data3 ....];

Почему?

     NSArray *tempArray = [[NSArray alloc] init];
     self.tableDataSource3 = tempArray;
      [tempArray release];
    MyAppDelegate *AppDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    self.tableDataSource3 = [AppDelegate.data3 objectForKey:@"Rows"];

При запуске [self loadData3] вызывается дважды. Однажды в viewDidLoad и viewDidAppear. Ненужные. Должно быть только в viewWillAppear.

Вы либо не сохраняете данные, которые добавляете, либо не получаете их должным образом. Возможно, придется пройтись по вашему коду, чтобы увидеть, получаете ли вы данные, которые должны получать.

...