重新加载UIView
问题描述:
我有一个视图,当它启动时,从内存中读取对象数组,并使用对象完成表视图。当我转到另一个视图并写入另一个对象以归档并返回到第一个视图时,对象将从文件加载到数组中,因为它应该但不会以某种方式重新加载... [myTableView reloadData]
不起作用, setNeedsDisplay
。重新加载UIView
-(void)viewWillAppear:(BOOL)animated
{
contactsToLayNow=[NSKeyedUnarchiver unarchiveObjectWithFile:fPath()];
NSLog(@"NOW IN VIEW WILL APPEAR");
for(Contact *cn in contactsToLayNow)
{
NSLog(@"%@", cn.fName);
}
//[self.view setNeedsDisplay];
[quickDialTableView reloadData]; //MOREOVER EXCEPTION HERE IS THROWN
[super viewWillAppear:YES];
}
答
移动viewWillAppear:
方法你[super viewWillAppear:animated];
到第一线。
答
你需要保留contactsToLayNow - 我想这是被你的tableViews的绘图:)
contactsToLayNow = [[NSKeyedUnarchiver unarchiveObjectWithFile:fPath()] retain];
PS它不是必需的某个时候自动释放,但你应该把你的电话给超在这个方法的顶部;)
你的NSLog工作吗?在哪里以及如何声明'quickDialTableView'?如果抛出异常,可能是因为它不再可用。 – Cyrille
什么是例外?不应该在viewWillAppear方法的开始时调用超级方法吗? – onnoweb
是的,它被声明,是的,NSLog显示预期的数据。它甚至不是一个例外,它是一个崩溃,没有例外日志记录到控制台 –