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