获取 - (void)viewDidAppear:(BOOL)动画调用

时间:2011-11-22 14:16:29

标签: iphone objective-c ios xcode

我添加了

-(void) viewDidAppear:(BOOL)animated
{
    NSLog(@"view did appear");
}

给我的一个viewcontrollers。实际上他们都拥有它们。

当我从子视图控制器'C'返回到partent viewcontroller'B'时,我希望看到在'B'中调用viewDidAppear。

但它没有被调用。即使在视图控制器'A'中也不会调用它,它是'B'的父节点。

我能做些什么才能让它发挥作用?

该设计是一个TABBAR控制器,其中嵌入了NAVBAR控制器。

非常感谢, -Code

2 个答案:

答案 0 :(得分:1)

这将取决于您如何返回视图控制器,这些委托方法由拥有的视图控制器(导航或标签栏)发送。因此,如果您没有使用(例如......)导航控制器从视图堆栈中推送和弹出视图控制器,那么您将无法获得这些消息。

编辑 重新阅读之后听起来就像是在使用基本的标签栏控制器设置,请确保只需设置vc即可让标签栏控制器完成其工作。

答案 1 :(得分:1)

首次设置tabBarController时,必须编写对viewDidAppear的显式调用。例如:

UITabBarController *tabBarController = [[UITabBarController alloc] init];
UINavigationController *navControllerObject = [[UINavigationController alloc]initWithRootViewController:viewControllerObject];
[viewControllerObject viewDidAppear:YES];

您只需在设置tabBar时编写它,并且将按预期调用委托方法,然后再调用。