在呈现另一个之后关闭UIViewController

时间:2013-10-04 05:41:16

标签: ios objective-c cocoa-touch uiviewcontroller

我正在开发单一视图iOS 5.0+应用程序,我将以这种方式导航我的ViewControllers:

SearchViewController* search =
[[SearchViewController alloc] initWithNibName:@"SearchViewController"
                                       bundle:nil];
[self presentViewController:search
                   animated:NO
                 completion:nil];

我的问题是,如果我从SearchViewController开启HomeViewControllerHomeViewController出现SearchViewController后会被解雇吗?

我有很多UIViewController,我不知道当用户在它们之间导航时,它们是否全部存在。

2 个答案:

答案 0 :(得分:2)

如果你想呈现只有一个Viewcontroller你可以试试,

 SearchViewController* search =
    [[SearchViewController alloc] initWithNibName:@"SearchViewController"
                                           bundle:nil];


    [self dismissViewControllerAnimated:NO completion:^{
        [self presentViewController:search
                           animated:NO
                         completion:nil];
    }];

答案 1 :(得分:1)

当您从另一个ViewController呈现ViewController时,它们永远不会从内存中释放出来。要从内存中释放它们,您需要明确地将它们解除。

  

方法presentViewController:animated:completion:设置   presentViewController属性到指定的视图控制器,   调整视图控制器的视图大小,然后将视图添加到视图   层次结构。

所以你看到你正在获得一堆ViewControllers并在另一个上面添加一个View。