使用PFQuery和Parse用户的UITableView重新加载问题 - 无法正确刷新它

时间:2014-05-19 10:44:55

标签: objective-c uitableview parse-platform

我的应用程序中有简单的关联功能,用户可以将其他用户添加到他们的联系人列表中。将用户添加到关系中工作正常,当我尝试在表视图中显示当前用户关系时,问题就开始了。

问题是:

我从Xcode启动应用程序(我在iPhone设备上测试),(根视图控制器是一个带标签栏的空白视图),然后点击标签栏上联系人列表的按钮,什么都没有将显示。它是正确的,因为实际上没有当前用户(我在viewDidLoad中有一个写出当前用户名的nslog)。因此,我注销并使用现有用户名登录,但在这种情况下,当我在联系人列表中时,nslog不起作用,但它应该,因为现在有一个当前用户。所以我在Xcode中停止应用程序,再次运行它并且运行良好。我的观点是问题在于tableViewTwo的数据重新加载,它不会正常重新加载,只有当我停止并再次开始运行它时。我认为它必须在每次打开时刷新。现在我正在使用[tableViewTwo reloadData],但只有在我再次启动应用程序时它才有效。你有什么想法我怎样才能正确刷新它?或者我该怎么做才能解决这个问题? (我不想使用PFQueryTableViewController。)

我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    PFUser *current = [PFUser currentUser];
    NSLog(@"current user is: %@",current);
    self.simpleContact = [[PFUser currentUser] objectForKey:@"simpleContact"];

}

-(void) viewWillAppear:(BOOL)animated {


    [super viewWillAppear:animated];
    PFQuery *queryMyContacts = [self.simpleContact query];
    [queryMyContacts orderByAscending:@"username"];
    [queryMyContacts findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if (error) {
            NSLog(@"Error %@ %@", error, [error userInfo]);
        }
        else {
            self.allMyContact = objects;
            [tableViewTwo reloadData];
        }
    }];
}

-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

   return [self.allMyContact count];
}

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    FriendsCell *cell = [tableViewTwo dequeueReusableCellWithIdentifier:@"friendsDevCell"];
    PFUser *user = [self.allMyContact objectAtIndex:indexPath.row];
    cell.myContactUsernameLabel.text = user.username;

 }

0 个答案:

没有答案