0

我有一个 UITableView,它使用 JSON 从 AppDelegate 获取新数据。它保存数据,然后从 AppDelegate.data3 拉到这个 tableview 类中,在我向 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];
        }
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"];

在启动时 [self loadData3] 被调用两次。一旦进入 viewDidLoad 和 viewDidAppear。不必要。应该只在 viewWillAppear 中。

您要么没有保存正在添加的数据,要么没有正确检索它。可能必须逐步检查您的代码,看看您是否获得了您应该获得的数据。

于 2010-10-15T18:13:47.030 回答