我的应用程序中有简单的关联功能,用户可以将其他用户添加到他们的联系人列表中。将用户添加到关系中工作正常,当我尝试在表视图中显示当前用户关系时,问题就开始了。
问题是:
我从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;
}