我添加了
-(void) viewDidAppear:(BOOL)animated
{
NSLog(@"view did appear");
}
给我的一个viewcontrollers。实际上他们都拥有它们。
当我从子视图控制器'C'返回到partent viewcontroller'B'时,我希望看到在'B'中调用viewDidAppear。
但它没有被调用。即使在视图控制器'A'中也不会调用它,它是'B'的父节点。
我能做些什么才能让它发挥作用?
该设计是一个TABBAR控制器,其中嵌入了NAVBAR控制器。
非常感谢, -Code
答案 0 :(得分:1)
这将取决于您如何返回视图控制器,这些委托方法由拥有的视图控制器(导航或标签栏)发送。因此,如果您没有使用(例如......)导航控制器从视图堆栈中推送和弹出视图控制器,那么您将无法获得这些消息。
编辑 重新阅读之后听起来就像是在使用基本的标签栏控制器设置,请确保只需设置vc即可让标签栏控制器完成其工作。
答案 1 :(得分:1)
首次设置tabBarController时,必须编写对viewDidAppear的显式调用。例如:
UITabBarController *tabBarController = [[UITabBarController alloc] init];
UINavigationController *navControllerObject = [[UINavigationController alloc]initWithRootViewController:viewControllerObject];
[viewControllerObject viewDidAppear:YES];
您只需在设置tabBar时编写它,并且将按预期调用委托方法,然后再调用。