2011-02-23 22 views
1

我有一个表格视图在我的项目中的导航视图。 我推入另一个视图进行登录。 该视图接受密码并将其发送到服务器进行验证。 如果密码正确,服务器将返回XML中的一些数据。如何刷新/更新登录视图后的tableview?

我想用这个XML数据刷新表视图。 以前,我在将navigationController视图添加到窗口之前先解析了xml。

如何从超级表视图中删除我的登录视图后刷新表视图?

由于

回答

0

(无效)controllerWillChangeContent:(NSFetchedResultsController *)控制器{ [self.table1View beginUpdates]; }

- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo 
       atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type { 

     switch(type) { 
      case NSFetchedResultsChangeInsert: 
       [self.table1View insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; 
       break; 

      case NSFetchedResultsChangeDelete: 
       [self.table1View deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; 
       break; 
     } 
    } 


    - (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject 
      atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type 
      newIndexPath:(NSIndexPath *)newIndexPath { 

     UITableView *tableView = self.table1View; 

     switch(type) { 

      case NSFetchedResultsChangeInsert: 
       [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
       break; 

      case NSFetchedResultsChangeDelete: 
       [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
       break; 

      case NSFetchedResultsChangeUpdate: 
       [self configureCell:[tableView cellForRowAtIndexPath:indexPath] atIndexPath:indexPath]; 
       break; 

      case NSFetchedResultsChangeMove: 
       [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
       [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]withRowAnimation:UITableViewRowAnimationFade]; 
       break; 
     } 
    } 
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller { 
    [self.table1View beginUpdates]; 
} 

,如果你有这个功能,你可以使用[self.YourTableView reloadData];

希望它可以帮助

0

添加所有您已加入navigationController视图窗口之前完成的代码,为您的viewWillAppear中的方法,制作一个方法并从两个地方调用它。

+0

你是什么意思做的方法,并调用它?这种方法应该做什么?我试图与viewWillAppear回调也。但是在我删除了登录视图之后,底层的导航视图的viewWillAppear方法不被触发。你能详细说明这些吗?非常感谢。 – astk 2011-02-24 01:32:43

1

对于刷新表查看您可以使用

[table reloadData];. 
+0

我使用下面的代码。但我得到'tableView'未声明的错误。我没有声明的tableView。我的主窗口从我的另一个nib文件加载表视图。任何想法? - (void)viewWillAppear:(BOOL)animated { \t [super viewWillAppear:animated]; \t \t [tableView reloadData]; } – astk 2011-02-23 16:08:09

+1

在IB.i中声明你的tableview的意思是使用IBoutlet UItableView * table;并映射它,并将委托方法连接到filesowner.if它在另一个类中Syntesis你的tableview,并创建一个实例到当前类的那个类。你可以重新加载表。 – Sat 2011-02-24 05:14:30