0

JSONを使用してAppDelegateから新しいデータを取得するUITableViewがあります。データを保存し、AppDelegate.data3からこのテーブルビュークラスにプルされます。mysqlデータベースにレコードを追加した後、データを更新するDelegateメソッドを起動します。

ただし、[self.tableview reLoadData]; テーブルのドリルダウン機能が壊れます。行を選択すると、子ビューが一瞬プッシュされ、親行で画面が更新されます。[self.tableviewreLoadData]を取り出すと; 親が子にプッシュしますが、新しいデータで更新された画面が表示されません。

何か案は?

-(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];
        }
4

1 に答える 1

0

いくつかの問題があります。あなたが何をしようとしているのかは明確ではありません。

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"];

起動時に[selfloadData3]が2回呼び出されます。viewDidLoadとviewDidAppearに入ると。不要。viewWillAppearにのみ表示されます。

追加するデータを保存していないか、データを適切に取得していません。取得するはずのデータを取得しているかどうかを確認するために、コードをステップスルーする必要がある場合があります。

于 2010-10-15T18:13:47.030 に答える