-(void)reloadView{
NSLog(@"IN RELOAD VIEW ");
[[self tableView] reloadData];
}
- (void)viewDidLoad {
UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
[self navigationItem].rightBarButtonItem = barButton;
[activityIndicator startAnimating];
[self callStudentsWebService];
[super viewDidLoad];
self.clearsSelectionOnViewWillAppear = NO;
self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0);
[self setTitle:@"Students"];
self.navigationController.toolbarHidden = NO;
self.navigationController.toolbar.barStyle = UIBarStyleBlack;
UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithTitle:@"Add Student" style:UIBarButtonItemStyleBordered target:self action:@selector(addStudent)];
UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *import = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize target:self action:@selector(addStudent)];
NSArray* toolbarItems = [NSArray arrayWithObjects:add,flexible,import, nil];
self.toolbarItems = toolbarItems;
}
上面是我的一个类中的代码,它是UITableViewController
的子类。
现在我的问题是,当我第一次进入屏幕时,它从方法[self callStudentsWebService]
获取来自Web服务的记录。现在我在同一视图中的uitoolbar
中有一个按钮来更新列表。我正在调用reloadView
方法来刷新List
,但它会调用numberOfRowsInSection
和viewDidLoad
方法,但不会调用cellForRowAtIndexPath
方法。但是当我转到其他屏幕并再次回来时,它会从开始刷新我的List
。
可能是什么原因?请帮助我成为iPad开发的新手。我正在iPad上做这一切。
非常感谢
EDITED
@interface StudentsList : UITableViewController {
DetailViewController *detailViewController;
UIToolbar *toolbar;
UIActivityIndicatorView *activityIndicator;
}
答案 0 :(得分:0)
可能是你的data.count是0吗?如果有一些数据,它应该在[[self tableView] reloadData];
答案 1 :(得分:0)
在另一个单独的方法-(void)refreshData
中执行刷新代码,然后在-viewDidLoad
或按下按钮时随时调用此方法......
答案 2 :(得分:0)
尝试从
调用 - (void)reloadView-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self reloadView];
}