Ios 使用removefromsuperview方法时如何刷新视图?

Ios 使用removefromsuperview方法时如何刷新视图?,ios,objective-c,page-refresh,Ios,Objective C,Page Refresh,我在iOS应用程序上有两个视图控制器 第一个视图控制器(A)存储包含数据单元的表视图。 当我选择一个单元格时,我使用以下方法转到第二个视图控制器(B): 当我在第二视图控制器(B)中并且我想回到第一视图控制器(A)时,我使用以下方法: [self.view removeFromSuperview]; 然后我回到第一视图控制器(A) 问题是: 当我在第一个视图控制器(a)中选择一个不同的单元时,我转到第二个视图控制器(B),但这次使用的是前一个单元的相同数据。 视图控制器不会自动刷新数据…

我在iOS应用程序上有两个视图控制器

第一个视图控制器(A)存储包含数据单元的表视图。 当我选择一个单元格时,我使用以下方法转到第二个视图控制器(B):

当我在第二视图控制器(B)中并且我想回到第一视图控制器(A)时,我使用以下方法:

  [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];