【问题标题】:Dismiss UIViewController after presenting another one在呈现另一个 UIViewController 后关闭 UIViewController
【发布时间】:2013-10-04 05:41:15
【问题描述】:

我正在开发一个单视图 iOS 5.0+ 应用程序,我将通过这种方式浏览我的 ViewControllers:

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

我的问题是,如果我从HomeViewController 打开SearchViewController,在显示SearchViewControllerHomeViewController 会被解散吗?

我有很多UIViewControllers,但我不知道当用户在它们之间导航时它们是否都在内存中。

【问题讨论】:

    标签: ios objective-c cocoa-touch uiviewcontroller


    【解决方案1】:

    如果你只想展示一个 Viewcontroller,你可以试试,

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

    【讨论】:

      【解决方案2】:

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

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

      所以你看到你得到了一堆 ViewController 并在另一个之上添加了一个 View。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-01
        • 1970-01-01
        • 2021-05-21
        • 1970-01-01
        • 1970-01-01
        • 2020-10-01
        • 1970-01-01
        相关资源
        最近更新 更多