【问题标题】:View Controller Memory Management iOS查看控制器内存管理 iOS
【发布时间】:2014-02-20 11:59:12
【问题描述】:

我将开发一个应用程序,它使用类似于 Gmail 和 Facebook 等流行应用程序上的“侧边栏”。然而,我很好奇的是在这些情况下如何管理视图控制器。我看到使用 Storyboard 的方式是在视图控制器之间创建转场,但我不明白这将如何与允许您访问许多不同视图控制器的侧边栏一起使用。

我是否必须对此采取不同的方法,例如使用导航控制器或其他方式?如果是这样,我将如何处理这个问题,因为我在导航栏上有一个但可以拉出侧视图。我很担心内存管理,不知道如何解决这个问题,因此我们将不胜感激。

谢谢!

【问题讨论】:

    标签: ios navigation sidebar


    【解决方案1】:

    您的幻灯片 viewController 应该保留在内存中以便从左侧或右侧快速滑动,如果您每次都创建 viewController,那么幻灯片动画可能会比您想要的慢。您应该在这里拥有完全自定义的视图。我建议您使用互联网上可用的开源库之一,而不是通过工作来实现它。
    这是一个例子:https://www.cocoacontrols.com/controls/msnavigationpaneviewcontroller
    还有一个:https://www.cocoacontrols.com/controls/skslideviewcontroller

    【讨论】:

    • 谢谢!我的问题更多是关于如何管理视图控制器的切换并知道它是否可以在 StoryBoard 中完成?
    • 如果您的意思是使用界面生成器,那么答案是否定的。做起来不是那么容易吗,就像我告诉你的那样,应该做额外的工作。 @JoeyClover
    【解决方案2】:

    您可以使用此功能在您的storyBoard 中导航:

    UIViewController *destinationViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyNextViewController"];
    [self.navigationController pushViewController:destinationViewController animated:YES];
    

    然后像这样指定UIViewController 的标识符:

    【讨论】:

    • 这看起来很棒,但是每次我使用侧边栏切换时,我是否必须做[self.navigationController popViewController:x animated:YES或其他什么?
    • popViewController 如果你想回到你的上一个viewControllerpushViewController一个新的。
    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2013-11-19
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多