Iphone 如何使表视图重新显示

Iphone 如何使表视图重新显示,iphone,uitableview,reload,Iphone,Uitableview,Reload,我有一个导航iPhone应用程序,它的“二级”控制器目前是一个UIViewController,其Nib包含一个UIView。我在UIView的顶部留出了一个导航栏,然后在底部添加了一个工具栏,上面放了一个刷新按钮、一个标签和一个活动指示器。最后,但并非最不重要的是,我在中间放了一个表视图。 我连接了控制器和nib之间的所有内容,并使文件的所有者连接到UIView和数据源,并将UIView包含的UITableView委托给文件的所有者,一切正常 但是我不知道如何告诉表视图刷新 我想我可以把它放在

我有一个导航iPhone应用程序,它的“二级”控制器目前是一个UIViewController,其Nib包含一个UIView。我在UIView的顶部留出了一个导航栏,然后在底部添加了一个工具栏,上面放了一个刷新按钮、一个标签和一个活动指示器。最后,但并非最不重要的是,我在中间放了一个表视图。 我连接了控制器和nib之间的所有内容,并使文件的所有者连接到UIView和数据源,并将UIView包含的UITableView委托给文件的所有者,一切正常

但是我不知道如何告诉表视图刷新

我想我可以把它放在我希望表更新的代码中:

[self.tableView reloadData];
但除非我的第二级控制器是UITableViewController,否则这行代码将无法编译。当我将我的第二级控制器设置为UITableViewController时,我的应用程序在加载第二级控制器时会崩溃,因为文件的所有者不引用表视图控制器;当我将文件的所有者设置为引用表视图出口而不是视图时,除了底部的工具栏之外,其他都可以正常工作,随着它的标签和刷新按钮不再出现

我还试着简单地添加

[self refresh];
代替[self.tableview reloadData],但代码陷入了刷新自身的循环中


我怎样才能让这一切都运作起来?我想我需要将我的二级控制器保留为UIViewcontroller,但我仍然希望能够在需要时让它包含的UITableView进行自我更新。

为什么您的二级控制器不能成为UITableViewController?它是UIViewController的一个子类,因此不会丢失任何功能

在任何情况下,非UITableViewController UIViewController类都没有您可以调用的
tableView
属性。您应该在自己的ivar中保留表视图并调用它。(您甚至可以将其称为
tableView
;您只需自己定义即可。)


如果[self refresh]是一种方法,我相信我可以通过从我的viewWillExample方法中删除对正在执行此操作的方法的调用来阻止循环的发生。请告诉我。非常感谢。我对这一切都很陌生,甚至没有想过简单地添加一个插座,让它重新显示。完美答案!
@interface MyViewController : UIViewController {
    UITableView *tableView;
}

@property(nonatomic,retain) IBOutlet UITableView *tableView;

- (void)myMethod;

@end
@implementation MyViewController

@synthesize tableView;

- (void)myMethod {
    [self.tableView reloadData];
}