我有一个问题,更新UITableView
。我呼吁它的reloadData
方法,但cellForRowAtIndexPath
不会被调用。代码:的UITableView不重新加载
//.h
@interface MasterViewController : UIViewController<ELCTextFieldDelegate, UITableViewDelegate, UITableViewDataSource> {
//some variables
}
@property (nonatomic, retain) IBOutlet UITableView *theTableView;
//other properties
//.m
- (void)viewDidLoad {
//some code
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
- (void)keyboardWillHide:(NSNotification *)notification {
self.theTableView.frame = CGRectMake(0, 0, 320, 480 - 64);
[self.theTableView reloadData];
}
我UITableView
连接theTableView
在厦门国际银行,我还设置它的delegate
和dataSource
到File's Owner
。
我使用ELCTextFieldCell
,它为我提供了一个UITableViewCell
与UILabel
和UITextField
。我在单元格中插入了一些值,当键盘隐藏tableView时,它应该重新载入它的数据以在其中一个单元格中显示正确的结果。我做了一些调试和计算的工作,因为它应该,但该单元格不刷新(正如我前面提到的cellForRowAtIndexPath
方法没有得到[self.theTableView reloadData]
后调用。
谢谢。
任何帮助,将不胜感激
EDIT
找到的,一个 “丑” 的解决方案。而不是调用
[self.theTableView reloadData];
的
我叫
[self.theTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:7 inSection:0]] withRowAnimation:UITableViewRowAnimationNone];
这是丑陋和硬编码,这可能导致问题以后,如果我会添加更多的细胞或删除一些,但它的作品。
还在寻找那个会用reloadData
方法
可以实现代码如下实例为null。那它不起作用。保持NSLog(@“theTableView%@”,theTableView);并检查。 – Dee
你在哪里分配内存到表格视图? – rishi
@Dee它不是。如果我将它从屏幕上滚动并再次显示,单元格将刷新。调试器在keyboradWillHide的第一行显示如下:'(UITableView *)$ 7 = 0x079f3e00; contentOffset:{-0,-0}>'。所以我想这不是代码中的@rishi –
Novarg