viewWillAppear方法不会调用iPhone SDK

时间:2012-02-22 10:26:34

标签: iphone objective-c xcode

从一个视图导航到另一个视图,当我弹出我的视图时,viewWillAppear方法没有调用。

你可以告诉我原因。

4 个答案:

答案 0 :(得分:0)

第一次调用viewWillAppear方法时加载View?尝试使用

  

[[self navigationController] popViewControllerAnimated:TRUE];

返回

答案 1 :(得分:0)

如果你做得很好,你的应用程序崩溃了一些地方,使用断点和检查,即使你可以检查并按照这些步骤......

步骤1.推送FirstViewController

SecondViewController *second = [[SecondViewController alloc]init]
[self.navigationController pushViewController:second animated:TRUE];

步骤2.弹出SecondViewController

//检查应用程序堆栈中是否存在导航控制器

NSArray *arrView = [self.navigationController viewControllers];

NSLog(@"arrView %@",arrView);

for(int i = 0; i <[arrView count]-1, i++)
{
    if([arrView objectAtIndex:i] isKindOfClass:[FirstViewController class])
    {
        [self.navigationController popViewControllerAnimated:TRUE];
    }
} 

答案 2 :(得分:0)

这些问题通常是由于视图控制器包含的不当使用造成的。您需要查看视图控制器层次结构并研究以下方法:

[UIViewController addChildViewController:];
[UIViewController removeFromParentViewController:];
[UIViewController transitionFromViewController:toViewController:duration:options:animations:completion:]
[UIViewController willMoveToParentViewController:]
[UIViewController didMoveToParentViewController:]

阅读UIViewController Class Reference.

实施容器视图控制器部分

答案 3 :(得分:-1)

我也遇到过这种情况。 在iOS 5中,没关系。 但是当我在iOS 4.3.1中测试时,viewWillAppear没有调用。

所以你需要手动调用viewWillAppear

你可以试试这个

[[self.navigationController.viewControllers objectAtIndex:0] viewWillAppear:YES];
[self.navigationController popViewControllerAnimated:YES];