我的应用程序是基于我的应用程序的视图在一个视图中我会写出视图,但此方法不会调用。我的代码是
-(void)viewWillAppear:(BOOL)animated
{
NSLog(@"view will Appear");
[tableView reloadData];
}
任何人都可以告诉为什么没有调用viewWillAppear方法。
抱歉,我忘了告诉你这个方法第一次调用,但是当我从这个视图中删除子视图时,未调用viewWillAppear。请建议我如何解决这个问题。
答案 0 :(得分:2)
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"view will Appear");
[tableView reloadData];
}
如果仍然没有调用那么尝试通过代码调用,例如[classobj viewWillAppear:NO];
答案 1 :(得分:0)
viewWillAppear和其他相关方法被调用到与mainWindow的rootViewController链接的viewcontroller。 因此,如果您使用的是基于视图的应用程序,则第一个视图控制器的viewWillAppear方法将正常工作,而其他视图控制器则不会。
答案 2 :(得分:0)
我认为您看到的问题是viewWillAppear:
是UIViewController
上的方法,而不是UIView
上的方法。在视图控制器上调用viewWillAppear:
以指示控制器的视图将变为可见。
如果您已将上述代码添加到基于UIView
的类中,则不会调用该代码。您需要将该代码移动到视图控制器 - 或者 - 您可以通过在基于UIView的类中实现didMoveToSuperview
方法来实现您正在寻找的结果。
didMoveToSuperview
将视图添加到其他视图时,系统会在您的视图中调用 addSubview:
。
答案 3 :(得分:0)
嗨我在这里做了
[self.view addSubview:viewcontroller.view];
我用过这个:
[self presentModalViewController:viewcontroller animated:YES];
现在写下这个方法我的问题就解决了。
-(void)viewWillAppear:(BOOL)animated
{
NSLog(@"==========view will appear");
}