Ios 使用removefromsuperview方法时如何刷新视图?
我在iOS应用程序上有两个视图控制器 第一个视图控制器(A)存储包含数据单元的表视图。 当我选择一个单元格时,我使用以下方法转到第二个视图控制器(B): 当我在第二视图控制器(B)中并且我想回到第一视图控制器(A)时,我使用以下方法:Ios 使用removefromsuperview方法时如何刷新视图?,ios,objective-c,page-refresh,Ios,Objective C,Page Refresh,我在iOS应用程序上有两个视图控制器 第一个视图控制器(A)存储包含数据单元的表视图。 当我选择一个单元格时,我使用以下方法转到第二个视图控制器(B): 当我在第二视图控制器(B)中并且我想回到第一视图控制器(A)时,我使用以下方法: [self.view removeFromSuperview]; 然后我回到第一视图控制器(A) 问题是: 当我在第一个视图控制器(a)中选择一个不同的单元时,我转到第二个视图控制器(B),但这次使用的是前一个单元的相同数据。 视图控制器不会自动刷新数据…
[self.view removeFromSuperview];
然后我回到第一视图控制器(A)
问题是:
当我在第一个视图控制器(a)中选择一个不同的单元时,我转到第二个视图控制器(B),但这次使用的是前一个单元的相同数据。
视图控制器不会自动刷新数据…
我尝试使用ViewWillDisplay,但它不起作用,所以我需要一些帮助。另一方面,ViewDidAspect当然也不起作用
谢谢大家
[viewThatYouWantToRefresh setNeedsDisplay];
或者,如果需要更新UITableView上单元格中的数据:
[tableView reloadData];
之所以如此,是因为您只需在第一次创建secondViewController(延迟加载),然后添加子视图:
if (secondViewController == nil) {
secondViewController = [[SecondViewController alloc] initWithNibName: @"nibName" bundle:nil];
}
您可以通过以下操作进行分类:
secondViewController = [[SecondViewController alloc] initWithNibName: @"nibName" bundle:nil];
[self.view addSubview:secondViewController.view];
但是在哪里将数据加载到子视图。如果要根据数据更改视图,应执行以下操作:
if (secondViewController == nil) {
secondViewController = [[SecondViewController alloc] initWithNibName: @"nibName" bundle:nil];
}
//Pass some data here
secondViewController.SOMEDATA = YOURDATA;
[self.view addSubview:secondViewController.view];
我相信我正确地理解了你,但我认为你可以改变
if (secondViewController == nil) {
secondViewController = [[SecondViewController alloc] initWithNibName: @"nibName" bundle:nil];
}
到
因此,每次选择新单元格时,都将重新创建SecondViewController 只需删除此条件:
if(secondViewController==nil)
i、 e无需检查secondViewController是否为零。问题是您只创建了一次secondViewController 你的代码行得通,谢谢兄弟,但我有一个新问题。您一直创建的视图控制器,内存是由它们自己释放的吗?我使用arc,对不起我的英语在这种情况下你不应该担心记忆。照顾好它。
if (secondViewController == nil) {
secondViewController = [[SecondViewController alloc] initWithNibName: @"nibName" bundle:nil];
}
secondViewController = [[SecondViewController alloc] initWithNibName: @"nibName" bundle:nil];