我正在开发IOS messanger app,我有inbox(tableview),其中我有单元格(对话),当我选择对话时,我想提出这个对话(tableviewController充满了消息),但我不喜欢显示此控制器需要多长时间。所以我的想法是在选择对话之前创建整个控制器(tableviewController充满消息)对象,然后只需推送它们。我第一次选择对话,它是空白的,在返回然后再次选择它之后,它可以工作。问题很明显,一些变量在viewDidLoad方法中初始化。我试图将它们移动到init方法,但每次对话都是空白时。 你有这方面的经验吗?任何提示都将受到很多赞赏。 谢谢!!!
答案 0 :(得分:1)
充满了消息:
.h文件:
@property (nonatomic, assign) BOOL firstAppear;
.m文件
self.firstAppear = NO; //in init method
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
if (self.firstAppear) {
//add a indicator view here
}
}
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
if (self.firstAppear) {
//get tableView data here, then [tableView reloadData] to show data
//remove the indicator
self.firstAppear = NO;
}
}
答案 1 :(得分:0)
听起来像你在做过早的优化。创建和推送表视图控制器应该只需要一小部分时间。如果花费的时间更长,那就错了。您是从远程服务器加载对话数据还是什么?
您可能希望使用Instruments来确定什么需要额外的时间并导致延迟。然后你可以专注于实际的原因而不是猜测。